diff --git a/gtk/gtksettings.c b/gtk/gtksettings.c index eb541f9c41..f699dec267 100644 --- a/gtk/gtksettings.c +++ b/gtk/gtksettings.c @@ -2636,12 +2636,15 @@ settings_update_theme (GtkSettings *settings) GTK_STYLE_PROVIDER (provider)); if (new_provider) - gtk_style_context_add_provider_for_screen (settings->screen, - GTK_STYLE_PROVIDER (new_provider), - GTK_STYLE_PROVIDER_PRIORITY_SETTINGS + 1); + { + gtk_style_context_add_provider_for_screen (settings->screen, + GTK_STYLE_PROVIDER (new_provider), + GTK_STYLE_PROVIDER_PRIORITY_SETTINGS + 1); + g_object_ref (new_provider); + } g_object_set_qdata_full (G_OBJECT (settings), quark_theme_name, - new_provider, (GDestroyNotify) g_object_unref); + new_provider, (GDestroyNotify) g_object_unref); } }