diff options
Diffstat (limited to 'demos/widget-factory/widget-factory.c')
-rw-r--r-- | demos/widget-factory/widget-factory.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/demos/widget-factory/widget-factory.c b/demos/widget-factory/widget-factory.c index 8b8e852dd5..acc8abd450 100644 --- a/demos/widget-factory/widget-factory.c +++ b/demos/widget-factory/widget-factory.c @@ -1606,6 +1606,27 @@ adjustment3_value_changed (GtkAdjustment *adj, GtkProgressBar *pbar) } static void +settings__notify_gtk_theme_name (GObject *gobject, + GParamSpec *pspec, + gpointer data) +{ + GtkWidget *window = data; + char *theme_name = NULL; + + g_object_get (gobject, "gtk-theme-name", &theme_name, NULL); + + if (g_strcmp0 (theme_name, "Adwaita") == 0) + { + if (gtk_get_minor_version () % 2 != 0) + gtk_style_context_add_class (gtk_widget_get_style_context (window), "devel"); + } + else + gtk_style_context_remove_class (gtk_widget_get_style_context (window), "devel"); + + g_free (theme_name); +} + +static void activate (GApplication *app) { GtkBuilder *builder; @@ -1680,6 +1701,13 @@ activate (GApplication *app) win_entries, G_N_ELEMENTS (win_entries), window); + g_signal_connect (gtk_settings_get_default (), "notify::gtk-theme-name", + G_CALLBACK (settings__notify_gtk_theme_name), + window); + settings__notify_gtk_theme_name (G_OBJECT (gtk_settings_get_default ()), + NULL, + window); + for (i = 0; i < G_N_ELEMENTS (accels); i++) gtk_application_set_accels_for_action (GTK_APPLICATION (app), accels[i].action_and_target, accels[i].accelerators); |