summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlukefromdc <[email protected]>2016-12-04 15:23:03 -0500
committerlukefromdc <[email protected]>2016-12-04 15:23:03 -0500
commitaa7af8673a3d894fc99a00d1a30ea57f44e3e1c5 (patch)
treed6c19dd79e6c83f61ce629316a1ba97e62ea6e1b
parent6ec1d86a500590e5a02bbddf054b88897f2a973c (diff)
downloadcaja-aa7af8673a3d894fc99a00d1a30ea57f44e3e1c5.tar.bz2
caja-aa7af8673a3d894fc99a00d1a30ea57f44e3e1c5.tar.xz
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
-rw-r--r--data/Makefile.am1
-rw-r--r--data/caja-desktop.css34
-rw-r--r--data/caja.css31
-rw-r--r--src/caja-application.c15
4 files changed, 52 insertions, 29 deletions
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
@@ -2221,9 +2221,24 @@ init_icons_and_styles (void)
} 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);
+ } else {
+ gtk_style_context_add_provider_for_screen (gdk_screen_get_default (),
+ GTK_STYLE_PROVIDER (provider),
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
}
+
g_object_unref (provider);
/* initialize search path for custom icons */