Title: [196913] releases/WebKitGTK/webkit-2.10/Source/WebCore
Revision
196913
Author
carlo...@webkit.org
Date
2016-02-22 01:18:01 -0800 (Mon, 22 Feb 2016)

Log Message

Merge r196171 - [GTK] Scrollbars not correctly rendered in non GNOME environments
https://bugs.webkit.org/show_bug.cgi?id=153860

Reviewed by Michael Catanzaro.

I noticed this in a matchbox environment, where there's no
gnome-setting-daemon running. The problem is only with the
scrollbars, because we initialize the GtkSettings in
RenderThemeGtk and notify the ScrollbarTheme when it changes, but
ScrollbarTheme is created before RenderThemeGtk so we initialize
the theme properties before the GtkSettings have been
initialized. We can just let the ScrollbarTheme monitor the
theme itself instead of relying on being notified by the WebCore
layer.

* platform/gtk/ScrollbarThemeGtk.cpp:
(WebCore::themeChangedCallback):
(WebCore::ScrollbarThemeGtk::ScrollbarThemeGtk):
* rendering/RenderThemeGtk.cpp:
(WebCore::gtkStyleChangedCallback): Deleted.

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog (196912 => 196913)


--- releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog	2016-02-22 09:12:53 UTC (rev 196912)
+++ releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog	2016-02-22 09:18:01 UTC (rev 196913)
@@ -1,3 +1,26 @@
+2016-02-05  Carlos Garcia Campos  <cgar...@igalia.com>
+
+        [GTK] Scrollbars not correctly rendered in non GNOME environments
+        https://bugs.webkit.org/show_bug.cgi?id=153860
+
+        Reviewed by Michael Catanzaro.
+
+        I noticed this in a matchbox environment, where there's no
+        gnome-setting-daemon running. The problem is only with the
+        scrollbars, because we initialize the GtkSettings in
+        RenderThemeGtk and notify the ScrollbarTheme when it changes, but
+        ScrollbarTheme is created before RenderThemeGtk so we initialize
+        the theme properties before the GtkSettings have been
+        initialized. We can just let the ScrollbarTheme monitor the
+        theme itself instead of relying on being notified by the WebCore
+        layer.
+
+        * platform/gtk/ScrollbarThemeGtk.cpp:
+        (WebCore::themeChangedCallback):
+        (WebCore::ScrollbarThemeGtk::ScrollbarThemeGtk):
+        * rendering/RenderThemeGtk.cpp:
+        (WebCore::gtkStyleChangedCallback): Deleted.
+
 2016-02-03  Carlos Garcia Campos  <cgar...@igalia.com>
 
         Do not show context menu when right clicking on a scrollbar

Modified: releases/WebKitGTK/webkit-2.10/Source/WebCore/platform/gtk/ScrollbarThemeGtk.cpp (196912 => 196913)


--- releases/WebKitGTK/webkit-2.10/Source/WebCore/platform/gtk/ScrollbarThemeGtk.cpp	2016-02-22 09:12:53 UTC (rev 196912)
+++ releases/WebKitGTK/webkit-2.10/Source/WebCore/platform/gtk/ScrollbarThemeGtk.cpp	2016-02-22 09:18:01 UTC (rev 196913)
@@ -217,8 +217,19 @@
     return styleContext;
 }
 
+static void themeChangedCallback()
+{
+    ScrollbarTheme::theme()->themeChanged();
+}
+
 ScrollbarThemeGtk::ScrollbarThemeGtk()
 {
+    static bool themeMonitorInitialized = false;
+    if (!themeMonitorInitialized) {
+        g_signal_connect_swapped(gtk_settings_get_default(), "notify::gtk-theme-name", G_CALLBACK(themeChangedCallback), nullptr);
+        themeMonitorInitialized = true;
+    }
+
     updateThemeProperties();
 }
 

Modified: releases/WebKitGTK/webkit-2.10/Source/WebCore/rendering/RenderThemeGtk.cpp (196912 => 196913)


--- releases/WebKitGTK/webkit-2.10/Source/WebCore/rendering/RenderThemeGtk.cpp	2016-02-22 09:12:53 UTC (rev 196912)
+++ releases/WebKitGTK/webkit-2.10/Source/WebCore/rendering/RenderThemeGtk.cpp	2016-02-22 09:18:01 UTC (rev 196913)
@@ -168,7 +168,6 @@
 
 static void gtkStyleChangedCallback(GObject*, GParamSpec*)
 {
-    static_cast<ScrollbarThemeGtk*>(ScrollbarTheme::theme())->themeChanged();
     Page::updateStyleForAllPagesAfterGlobalChangeInEnvironment();
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to