[gtk/fix-icontheme-invalidation: 14/18] icontheme: Call gtk_system_setting_changed



commit 9956ee2a6551ac195fb8e906f05e041fa689e123
Author: Matthias Clasen <mclasen redhat com>
Date:   Tue Apr 21 10:44:36 2020 -0400

    icontheme: Call gtk_system_setting_changed
    
    When the icon theme changes, we want to both initiate
    a css SOURCE change (since css values may depend on the
    icon theme), as well as calling gtk_system_setting_changed,
    since widgets need to drop cached images, e.g. in GtkIconHelper.

 gtk/gtkicontheme.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c
index 4cb92350e5..09fecd9196 100644
--- a/gtk/gtkicontheme.c
+++ b/gtk/gtkicontheme.c
@@ -47,8 +47,10 @@
 #include "gtkmain.h"
 #include "gtksettingsprivate.h"
 #include "gtkstylecontextprivate.h"
+#include "gtkstyleproviderprivate.h"
 #include "gtkprivate.h"
 #include "gtksnapshot.h"
+#include "gtkwidgetprivate.h"
 #include "gdkpixbufutilsprivate.h"
 #include "gdk/gdktextureprivate.h"
 #include "gdk/gdkprofilerprivate.h"
@@ -1317,7 +1319,9 @@ theme_changed_idle__mainthread_unlocked (gpointer user_data)
 
       if (display)
         {
-          gtk_style_context_reset_widgets (self->display);
+          GtkSettings *settings = gtk_settings_get_for_display (self->display);
+          gtk_style_provider_changed (GTK_STYLE_PROVIDER (settings));
+          gtk_system_setting_changed (display, GTK_SYSTEM_SETTING_ICON_THEME);
           g_object_unref (display);
         }
 
@@ -1353,7 +1357,6 @@ do_theme_change (GtkIconTheme *self)
   blow_themes (self);
 
   queue_theme_changed (self);
-
 }
 
 static void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]