132 lines
3.5 KiB
Diff
132 lines
3.5 KiB
Diff
From 64ad6c0a96b46a9d86d9a8babac1298c18d5fc1f Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= <ballogyor@gmail.com>
|
|
Date: Sat, 22 Nov 2014 21:23:25 +0100
|
|
Subject: [PATCH] Add application-specific theme for Adwaita
|
|
|
|
Based on this patch for Nautilus:
|
|
https://git.gnome.org/browse/nautilus/commit/?id=3fd7e847d531fbbfc4ebba24864bdd0f8b81c750
|
|
---
|
|
src/Adwaita.css | 26 +++++++++++++++++++++++++
|
|
src/nemo-application.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
src/nemo.gresource.xml | 1 +
|
|
3 files changed, 79 insertions(+)
|
|
create mode 100644 src/Adwaita.css
|
|
|
|
diff --git a/src/Adwaita.css b/src/Adwaita.css
|
|
new file mode 100644
|
|
index 0000000..d8b1f0c
|
|
--- /dev/null
|
|
+++ src/Adwaita.css
|
|
@@ -0,0 +1,26 @@
|
|
+.nemo-canvas-item {
|
|
+ border-radius: 5px;
|
|
+}
|
|
+
|
|
+.nemo-desktop.nemo-canvas-item {
|
|
+ color: @theme_selected_fg_color;
|
|
+ text-shadow: 1px 1px black;
|
|
+}
|
|
+
|
|
+.nemo-desktop.nemo-canvas-item:active {
|
|
+ color: @theme_text_color;
|
|
+}
|
|
+
|
|
+.nemo-desktop.nemo-canvas-item:selected {
|
|
+ color: @theme_selected_fg_color;
|
|
+}
|
|
+
|
|
+.nemo-desktop.nemo-canvas-item:active,
|
|
+.nemo-desktop.nemo-canvas-item:prelight,
|
|
+.nemo-desktop.nemo-canvas-item:selected {
|
|
+ text-shadow: none;
|
|
+}
|
|
+
|
|
+.nemo-desktop.nemo-canvas-item:selected:backdrop {
|
|
+ color: @theme_unfocused_selected_fg_color;
|
|
+}
|
|
diff --git a/src/nemo-application.c b/src/nemo-application.c
|
|
index b3e8945..e5dd014 100644
|
|
--- src/nemo-application.c
|
|
+++ src/nemo-application.c
|
|
@@ -1041,6 +1041,56 @@ out_a:
|
|
}
|
|
|
|
static void
|
|
+theme_changed (GtkSettings *settings)
|
|
+{
|
|
+ static GtkCssProvider *adwaita_provider = NULL;
|
|
+ gchar *theme;
|
|
+ GdkScreen *screen;
|
|
+
|
|
+ g_object_get (settings, "gtk-theme-name", &theme, NULL);
|
|
+ screen = gdk_screen_get_default ();
|
|
+
|
|
+ if (g_str_equal (theme, "Adwaita"))
|
|
+ {
|
|
+ if (adwaita_provider == NULL)
|
|
+ {
|
|
+ GFile *file;
|
|
+
|
|
+ adwaita_provider = gtk_css_provider_new ();
|
|
+ file = g_file_new_for_uri ("resource:///org/nemo/Adwaita.css");
|
|
+ gtk_css_provider_load_from_file (adwaita_provider, file, NULL);
|
|
+ g_object_unref (file);
|
|
+ }
|
|
+
|
|
+ gtk_style_context_add_provider_for_screen (screen,
|
|
+ GTK_STYLE_PROVIDER (adwaita_provider),
|
|
+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
|
|
+ }
|
|
+ else if (adwaita_provider != NULL)
|
|
+ {
|
|
+ gtk_style_context_remove_provider_for_screen (screen,
|
|
+ GTK_STYLE_PROVIDER (adwaita_provider));
|
|
+ g_clear_object (&adwaita_provider);
|
|
+ }
|
|
+
|
|
+ g_free (theme);
|
|
+}
|
|
+
|
|
+static void
|
|
+setup_theme_extensions (void)
|
|
+{
|
|
+ GtkSettings *settings;
|
|
+
|
|
+ /* Set up a handler to load our custom css for Adwaita.
|
|
+ * See https://bugzilla.gnome.org/show_bug.cgi?id=732959
|
|
+ * for a more automatic solution that is still under discussion.
|
|
+ */
|
|
+ settings = gtk_settings_get_default ();
|
|
+ g_signal_connect (settings, "notify::gtk-theme-name", G_CALLBACK (theme_changed), NULL);
|
|
+ theme_changed (settings);
|
|
+}
|
|
+
|
|
+static void
|
|
init_icons_and_styles (void)
|
|
{
|
|
/* initialize search path for custom icons */
|
|
@@ -1052,6 +1102,8 @@ init_icons_and_styles (void)
|
|
NEMO_STATUSBAR_ICON_SIZE);
|
|
|
|
nemo_application_add_app_css_provider ();
|
|
+
|
|
+ setup_theme_extensions ();
|
|
}
|
|
|
|
static void
|
|
diff --git a/src/nemo.gresource.xml b/src/nemo.gresource.xml
|
|
index 8bb2bd3..6e6029d 100644
|
|
--- src/nemo.gresource.xml
|
|
+++ src/nemo.gresource.xml
|
|
@@ -11,6 +11,7 @@
|
|
<file>nemo-statusbar-ui.xml</file>
|
|
<file alias="icons/thumbnail_frame.png">../icons/thumbnail_frame.png</file>
|
|
<file alias="icons/knob.png">../icons/knob.png</file>
|
|
+ <file>Adwaita.css</file>
|
|
<file>nemo-style-fallback.css</file>
|
|
</gresource>
|
|
</gresources>
|
|
--
|
|
2.1.3
|
|
|