[gedit] app: Avoid connecting to any "notify" signal for theme changes
- From: Kalev Lember <klember src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit] app: Avoid connecting to any "notify" signal for theme changes
- Date: Tue, 10 Mar 2015 13:46:14 +0000 (UTC)
commit 1188740c7162e30cdc3e842fa9f20b5cdc454629
Author: Kalev Lember <kalevlember gmail com>
Date: Tue Mar 10 13:27:11 2015 +0100
app: Avoid connecting to any "notify" signal for theme changes
Instead, connect to notify::gtk-theme-name.
https://bugzilla.gnome.org/show_bug.cgi?id=745963
gedit/gedit-app.c | 55 +++++++++++++++++++++++++---------------------------
1 files changed, 26 insertions(+), 29 deletions(-)
---
diff --git a/gedit/gedit-app.c b/gedit/gedit-app.c
index fb13961..28cfaf2 100644
--- a/gedit/gedit-app.c
+++ b/gedit/gedit-app.c
@@ -408,40 +408,36 @@ theme_changed (GtkSettings *settings,
gpointer data)
{
static GtkCssProvider *provider;
+ gchar *theme;
+ GdkScreen *screen;
- if (pspec == NULL || g_str_equal (pspec->name, "gtk-theme-name"))
- {
- gchar *theme;
- GdkScreen *screen;
-
- g_object_get (settings, "gtk-theme-name", &theme, NULL);
- screen = gdk_screen_get_default ();
+ g_object_get (settings, "gtk-theme-name", &theme, NULL);
+ screen = gdk_screen_get_default ();
- if (g_str_equal (theme, "Adwaita"))
+ if (g_str_equal (theme, "Adwaita"))
+ {
+ if (provider == NULL)
{
- if (provider == NULL)
- {
- GFile *file;
+ GFile *file;
- provider = gtk_css_provider_new ();
- file = g_file_new_for_uri
("resource:///org/gnome/gedit/css/gedit.adwaita.css");
- gtk_css_provider_load_from_file (provider, file, NULL);
- g_object_unref (file);
- }
-
- gtk_style_context_add_provider_for_screen (screen,
- GTK_STYLE_PROVIDER (provider),
- GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
- }
- else if (provider != NULL)
- {
- gtk_style_context_remove_provider_for_screen (screen,
- GTK_STYLE_PROVIDER (provider));
- g_clear_object (&provider);
+ provider = gtk_css_provider_new ();
+ file = g_file_new_for_uri ("resource:///org/gnome/gedit/css/gedit.adwaita.css");
+ gtk_css_provider_load_from_file (provider, file, NULL);
+ g_object_unref (file);
}
- g_free (theme);
+ gtk_style_context_add_provider_for_screen (screen,
+ GTK_STYLE_PROVIDER (provider),
+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
}
+ else if (provider != NULL)
+ {
+ gtk_style_context_remove_provider_for_screen (screen,
+ GTK_STYLE_PROVIDER (provider));
+ g_clear_object (&provider);
+ }
+
+ g_free (theme);
}
static void
@@ -450,7 +446,8 @@ setup_theme_extensions (void)
GtkSettings *settings;
settings = gtk_settings_get_default ();
- g_signal_connect (settings, "notify", G_CALLBACK (theme_changed), NULL);
+ g_signal_connect (settings, "notify::gtk-theme-name",
+ G_CALLBACK (theme_changed), NULL);
theme_changed (settings, NULL, NULL);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]