From aa7af8673a3d894fc99a00d1a30ea57f44e3e1c5 Mon Sep 17 00:00:00 2001 From: lukefromdc Date: Sun, 4 Dec 2016 15:23:03 -0500 Subject: Rename labels: follow theme if available, sane default Fixes https://github.com/mate-desktop/caja/issues/688 *Split caja.css. Much of it can load with GTK_STYLE_PROVIDER_PRIORITY_THEME to allow themes that support Caja to set their own style. CSS required for the desktop background to show and to keep the white text suitable for most backgrounds needs GTK_STYLE_PROVIDER_PRIORITY_APPLICATION so it is loaded separately from new file caja-desktop.css *Move all css items that must not be overridden by themes (most of them are for the desktop) to caja-desktop.css and keep those that are only needed when themes do not set them at all in caja.css --- data/Makefile.am | 1 + data/caja-desktop.css | 34 ++++++++++++++++++++++++++++++++++ data/caja.css | 31 ++----------------------------- src/caja-application.c | 15 +++++++++++++++ 4 files changed, 52 insertions(+), 29 deletions(-) create mode 100644 data/caja-desktop.css diff --git a/data/Makefile.am b/data/Makefile.am index 0342a34c..757958ba 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -34,6 +34,7 @@ cajadata_DATA = \ caja-extras.placeholder \ caja-suggested.placeholder \ caja.css \ + caja-desktop.css \ $(NULL) # app data file diff --git a/data/caja-desktop.css b/data/caja-desktop.css new file mode 100644 index 00000000..a56797d9 --- /dev/null +++ b/data/caja-desktop.css @@ -0,0 +1,34 @@ +/* Everything that themes must not override goes in this file */ +/* This is loaded with GTK_STYLE_PROVIDER_PRIORITY_APPLICATION and overrides themes */ + +.caja-desktop-window, +.caja-desktop:not(:selected):not(:active):not(.rubberband){ + background-color: transparent; +} + +/* desktop mode */ +.caja-desktop.caja-canvas-item { + color: #ffffff; + text-shadow: 1px 1px alpha (#000000, 0.8); +} + +.caja-desktop.caja-canvas-item:selected, +.caja-desktop.caja-canvas-item:active, +.caja-desktop.caja-canvas-item:hover { + text-shadow: none; +} + +/* remove possible theme settings for borders on scrolledwindow with gtk+-3.20 */ +.caja-desktop-window > grid.vertical > box.vertical > box.vertical > box.vertical > scrolledwindow, +.caja-desktop-window > grid.vertical > box.vertical > box.vertical > box.vertical > scrolledwindow.frame, +.caja-desktop-window > grid.vertical > box.vertical > box.vertical > box.vertical > scrolledwindow > widget.view.caja-desktop { + border-width: 0px; + border-style: none; + border-radius: 0px; +} + +/* This is not on the desktop but will cause errors if themes can override */ +/* Padding in slider buttons causes GTK errors in GTK 3.20 or later */ +.caja-navigation-window .slider-button { + padding: 0px; +} diff --git a/data/caja.css b/data/caja.css index cf9141c7..311b5955 100644 --- a/data/caja.css +++ b/data/caja.css @@ -1,25 +1,10 @@ +/*Sane defaults for themes that do not specify them, themes can override these */ +/*This is loaded with GTK_STYLE_PROVIDER_PRIORITY_THEME so themes can override */ .caja-canvas-item { border-radius: 3px; } -.caja-desktop-window, -.caja-desktop:not(:selected):not(:active):not(.rubberband){ - background-color: transparent; -} - -/* desktop mode */ -.caja-desktop.caja-canvas-item { - color: #ffffff; - text-shadow: 1px 1px alpha (#000000, 0.8); -} - -.caja-desktop.caja-canvas-item:selected, -.caja-desktop.caja-canvas-item:active, -.caja-desktop.caja-canvas-item:hover { - text-shadow: none; -} - /* EelEditableLabel (icon labels) */ .caja-desktop.view .entry, .caja-desktop.view .entry:focus, @@ -55,16 +40,4 @@ text-shadow: none; } -/* remove possible theme settings for borders on scrolledwindow with gtk+-3.20 */ -.caja-desktop-window > grid.vertical > box.vertical > box.vertical > box.vertical > scrolledwindow, -.caja-desktop-window > grid.vertical > box.vertical > box.vertical > box.vertical > scrolledwindow.frame, -.caja-desktop-window > grid.vertical > box.vertical > box.vertical > box.vertical > scrolledwindow > widget.view.caja-desktop { - border-width: 0px; - border-style: none; - border-radius: 0px; -} -/* Padding in slider buttons causes GTK errors in GTK 3.20 or later */ -.caja-navigation-window .slider-button { - padding: 0px; -} diff --git a/src/caja-application.c b/src/caja-application.c index bf8404d9..972b11b0 100644 --- a/src/caja-application.c +++ b/src/caja-application.c @@ -2215,6 +2215,20 @@ init_icons_and_styles (void) gtk_css_provider_load_from_path (provider, CAJA_DATADIR G_DIR_SEPARATOR_S "caja.css", &error); + if (error != NULL) { + g_warning ("Can't parse Caja' CSS custom description: %s\n", error->message); + g_error_free (error); + } else { + gtk_style_context_add_provider_for_screen (gdk_screen_get_default (), + GTK_STYLE_PROVIDER (provider), + GTK_STYLE_PROVIDER_PRIORITY_THEME); + } + +/* add our desktop CSS provider, ensures the desktop background does not get covered */ + provider = gtk_css_provider_new (); + gtk_css_provider_load_from_path (provider, + CAJA_DATADIR G_DIR_SEPARATOR_S "caja-desktop.css", &error); + if (error != NULL) { g_warning ("Can't parse Caja' CSS custom description: %s\n", error->message); g_error_free (error); @@ -2224,6 +2238,7 @@ init_icons_and_styles (void) GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); } + g_object_unref (provider); /* initialize search path for custom icons */ -- cgit v1.2.1