We should change the colors when style-set is emitted, and load the icons only when the icon-theme changes.
Created attachment 75126 [details] Patch that fixes the issue This patch depends on the one attached to bug #50225
Comment on attachment 75126 [details] Patch that fixes the issue View in context: https://bugs.webkit.org/attachment.cgi?id=75126&action=review Awesome patch. Just a couple issues outlined below. > WebCore/platform/gtk/RenderThemeGtk.cpp:199 > + g_signal_connect(gtk_icon_theme_get_default(), "changed", G_CALLBACK(gtkIconThemeChanged), const_cast<RenderThemeGtk*>(this)); Do you really need a const_cast here? > WebCore/platform/gtk/RenderThemeGtk.cpp:794 > + initMediaStyling(true); This also reinitializes the media colors when the icon theme changes. Perhaps it would make sense to have two methods: initMediaColors and initMediaIcons. > WebCore/platform/gtk/RenderThemeGtk.h:142 > + virtual void initMediaColors(GtkStyle*); > virtual void initMediaStyling(bool force); Why are these virtual? Does any subclass override them?
(In reply to comment #2) > (From update of attachment 75126 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=75126&action=review > > Awesome patch. Just a couple issues outlined below. > > > WebCore/platform/gtk/RenderThemeGtk.cpp:199 > > + g_signal_connect(gtk_icon_theme_get_default(), "changed", G_CALLBACK(gtkIconThemeChanged), const_cast<RenderThemeGtk*>(this)); > > Do you really need a const_cast here? No idea, I copy-pasted from the "style-set" signal connection. > > WebCore/platform/gtk/RenderThemeGtk.cpp:794 > > + initMediaStyling(true); > > This also reinitializes the media colors when the icon theme changes. Perhaps it would make sense to have two methods: initMediaColors and initMediaIcons. Updating the colors is cheap, so I thought it didn't hurt. > > WebCore/platform/gtk/RenderThemeGtk.h:142 > > + virtual void initMediaColors(GtkStyle*); > > virtual void initMediaStyling(bool force); > > Why are these virtual? Does any subclass override them? No idea, initMediaStyling was already virtual and I added initMediaColors based on it.
*** This bug has been marked as a duplicate of bug 50623 ***