Title: [290988] trunk/Source
Revision
290988
Author
commit-qu...@webkit.org
Date
2022-03-08 06:50:34 -0800 (Tue, 08 Mar 2022)

Log Message

[GTK] Sync gtk-overlay-scrolling setting to web process
https://bugs.webkit.org/show_bug.cgi?id=236476

Patch by Michael Catanzaro <mcatanz...@gnome.org> on 2022-03-08
Reviewed by Adrian Perez de Castro.

Source/WebCore:

* platform/adwaita/ScrollbarThemeAdwaita.cpp:
(WebCore::ScrollbarThemeAdwaita::usesOverlayScrollbars const):
* platform/gtk/GtkUtilities.cpp:
(WebCore::shouldUseOverlayScrollbars):
* platform/gtk/GtkUtilities.h:
* platform/gtk/RenderThemeScrollbar.cpp:
(WebCore::RenderThemeScrollbar::RenderThemeScrollbar):
* platform/gtk/ScrollbarThemeGtk.cpp:
(WebCore::ScrollbarThemeGtk::ScrollbarThemeGtk):

Source/WebKit:

* Shared/gtk/GtkSettingsState.cpp:
(WebKit::GtkSettingsState::encode const):
(WebKit::GtkSettingsState::decode):
* Shared/gtk/GtkSettingsState.h:
* UIProcess/gtk/GtkSettingsManager.cpp:
(WebKit::GtkSettingsManager::overlayScrolling const):
(WebKit::GtkSettingsManager::settingsDidChange):
(WebKit::GtkSettingsManager::GtkSettingsManager):
* UIProcess/gtk/GtkSettingsManager.h:
* WebProcess/gtk/GtkSettingsManagerProxy.cpp:
(WebKit::GtkSettingsManagerProxy::applySettings):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (290987 => 290988)


--- trunk/Source/WebCore/ChangeLog	2022-03-08 13:42:11 UTC (rev 290987)
+++ trunk/Source/WebCore/ChangeLog	2022-03-08 14:50:34 UTC (rev 290988)
@@ -1,3 +1,20 @@
+2022-03-08  Michael Catanzaro  <mcatanz...@gnome.org>
+
+        [GTK] Sync gtk-overlay-scrolling setting to web process
+        https://bugs.webkit.org/show_bug.cgi?id=236476
+
+        Reviewed by Adrian Perez de Castro.
+
+        * platform/adwaita/ScrollbarThemeAdwaita.cpp:
+        (WebCore::ScrollbarThemeAdwaita::usesOverlayScrollbars const):
+        * platform/gtk/GtkUtilities.cpp:
+        (WebCore::shouldUseOverlayScrollbars):
+        * platform/gtk/GtkUtilities.h:
+        * platform/gtk/RenderThemeScrollbar.cpp:
+        (WebCore::RenderThemeScrollbar::RenderThemeScrollbar):
+        * platform/gtk/ScrollbarThemeGtk.cpp:
+        (WebCore::ScrollbarThemeGtk::ScrollbarThemeGtk):
+
 2022-03-08  Xabier Rodriguez Calvar  <calva...@igalia.com>
 
         [EME][Thunder] Disable hasBrokenEncryptedMediaAPISupportQuirk

Modified: trunk/Source/WebCore/platform/adwaita/ScrollbarThemeAdwaita.cpp (290987 => 290988)


--- trunk/Source/WebCore/platform/adwaita/ScrollbarThemeAdwaita.cpp	2022-03-08 13:42:11 UTC (rev 290987)
+++ trunk/Source/WebCore/platform/adwaita/ScrollbarThemeAdwaita.cpp	2022-03-08 14:50:34 UTC (rev 290988)
@@ -35,6 +35,7 @@
 #include "ThemeAdwaita.h"
 
 #if PLATFORM(GTK)
+#include "GtkUtilities.h"
 #include <gtk/gtk.h>
 #endif
 
@@ -70,8 +71,7 @@
 bool ScrollbarThemeAdwaita::usesOverlayScrollbars() const
 {
 #if PLATFORM(GTK)
-    static bool shouldUuseOverlayScrollbars = g_strcmp0(g_getenv("GTK_OVERLAY_SCROLLING"), "0");
-    return shouldUuseOverlayScrollbars;
+    return shouldUseOverlayScrollbars();
 #else
     return true;
 #endif

Modified: trunk/Source/WebCore/platform/gtk/GtkUtilities.cpp (290987 => 290988)


--- trunk/Source/WebCore/platform/gtk/GtkUtilities.cpp	2022-03-08 13:42:11 UTC (rev 290987)
+++ trunk/Source/WebCore/platform/gtk/GtkUtilities.cpp	2022-03-08 14:50:34 UTC (rev 290988)
@@ -207,4 +207,18 @@
 #endif
 }
 
+bool shouldUseOverlayScrollbars()
+{
+#if !USE(GTK4)
+    if (!g_strcmp0 (g_getenv ("GTK_OVERLAY_SCROLLING"), "0"))
+        return false;
+#endif
+
+    gboolean overlayScrolling;
+    g_object_get(gtk_settings_get_default(),
+        "gtk-overlay-scrolling",
+        &overlayScrolling, nullptr);
+    return !!overlayScrolling;
+}
+
 } // namespace WebCore

Modified: trunk/Source/WebCore/platform/gtk/GtkUtilities.h (290987 => 290988)


--- trunk/Source/WebCore/platform/gtk/GtkUtilities.h	2022-03-08 13:42:11 UTC (rev 290987)
+++ trunk/Source/WebCore/platform/gtk/GtkUtilities.h	2022-03-08 14:50:34 UTC (rev 290988)
@@ -57,4 +57,6 @@
 
 void monitorWorkArea(GdkMonitor*, GdkRectangle*);
 
+bool shouldUseOverlayScrollbars();
+
 } // namespace WebCore

Modified: trunk/Source/WebCore/platform/gtk/RenderThemeScrollbar.cpp (290987 => 290988)


--- trunk/Source/WebCore/platform/gtk/RenderThemeScrollbar.cpp	2022-03-08 13:42:11 UTC (rev 290987)
+++ trunk/Source/WebCore/platform/gtk/RenderThemeScrollbar.cpp	2022-03-08 14:50:34 UTC (rev 290988)
@@ -28,6 +28,7 @@
 
 #if !USE(GTK4)
 
+#include "GtkUtilities.h"
 #include <wtf/HashMap.h>
 #include <wtf/NeverDestroyed.h>
 
@@ -77,8 +78,7 @@
         info.classList.append("horizontal");
         info.classList.append("bottom");
     }
-    static bool usesOverlayScrollbars = g_strcmp0(g_getenv("GTK_OVERLAY_SCROLLING"), "0");
-    if (usesOverlayScrollbars)
+    if (shouldUseOverlayScrollbars())
         info.classList.append("overlay-indicator");
     if (mode == Mode::Full)
         info.classList.append("hovering");

Modified: trunk/Source/WebCore/platform/gtk/ScrollbarThemeGtk.cpp (290987 => 290988)


--- trunk/Source/WebCore/platform/gtk/ScrollbarThemeGtk.cpp	2022-03-08 13:42:11 UTC (rev 290987)
+++ trunk/Source/WebCore/platform/gtk/ScrollbarThemeGtk.cpp	2022-03-08 14:50:34 UTC (rev 290988)
@@ -58,6 +58,7 @@
     static bool themeMonitorInitialized = false;
     if (!themeMonitorInitialized) {
         g_signal_connect(gtk_settings_get_default(), "notify::gtk-theme-name", G_CALLBACK(themeChangedCallback), nullptr);
+        g_signal_connect(gtk_settings_get_default(), "notify::gtk-overlay-scrolling", G_CALLBACK(themeChangedCallback), nullptr);
         themeMonitorInitialized = true;
         updateThemeProperties();
     }

Modified: trunk/Source/WebKit/ChangeLog (290987 => 290988)


--- trunk/Source/WebKit/ChangeLog	2022-03-08 13:42:11 UTC (rev 290987)
+++ trunk/Source/WebKit/ChangeLog	2022-03-08 14:50:34 UTC (rev 290988)
@@ -1,3 +1,22 @@
+2022-03-08  Michael Catanzaro  <mcatanz...@gnome.org>
+
+        [GTK] Sync gtk-overlay-scrolling setting to web process
+        https://bugs.webkit.org/show_bug.cgi?id=236476
+
+        Reviewed by Adrian Perez de Castro.
+
+        * Shared/gtk/GtkSettingsState.cpp:
+        (WebKit::GtkSettingsState::encode const):
+        (WebKit::GtkSettingsState::decode):
+        * Shared/gtk/GtkSettingsState.h:
+        * UIProcess/gtk/GtkSettingsManager.cpp:
+        (WebKit::GtkSettingsManager::overlayScrolling const):
+        (WebKit::GtkSettingsManager::settingsDidChange):
+        (WebKit::GtkSettingsManager::GtkSettingsManager):
+        * UIProcess/gtk/GtkSettingsManager.h:
+        * WebProcess/gtk/GtkSettingsManagerProxy.cpp:
+        (WebKit::GtkSettingsManagerProxy::applySettings):
+
 2022-03-08  Youenn Fablet  <you...@apple.com>
 
         Add a preference to mute video capture in case audio capture gets interrupted

Modified: trunk/Source/WebKit/Shared/gtk/GtkSettingsState.cpp (290987 => 290988)


--- trunk/Source/WebKit/Shared/gtk/GtkSettingsState.cpp	2022-03-08 13:42:11 UTC (rev 290987)
+++ trunk/Source/WebKit/Shared/gtk/GtkSettingsState.cpp	2022-03-08 14:50:34 UTC (rev 290988)
@@ -42,6 +42,7 @@
     encoder << cursorBlink;
     encoder << cursorBlinkTime;
     encoder << primaryButtonWarpsSlider;
+    encoder << overlayScrolling;
 }
 
 std::optional<GtkSettingsState> GtkSettingsState::decode(IPC::Decoder& decoder)
@@ -78,6 +79,9 @@
     if (!decoder.decode(state.primaryButtonWarpsSlider))
         return std::nullopt;
 
+    if (!decoder.decode(state.overlayScrolling))
+        return std::nullopt;
+
     return state;
 }
 

Modified: trunk/Source/WebKit/Shared/gtk/GtkSettingsState.h (290987 => 290988)


--- trunk/Source/WebKit/Shared/gtk/GtkSettingsState.h	2022-03-08 13:42:11 UTC (rev 290987)
+++ trunk/Source/WebKit/Shared/gtk/GtkSettingsState.h	2022-03-08 14:50:34 UTC (rev 290988)
@@ -50,6 +50,7 @@
     std::optional<bool> cursorBlink;
     std::optional<int> cursorBlinkTime;
     std::optional<bool> primaryButtonWarpsSlider;
+    std::optional<bool> overlayScrolling;
 };
 
 } // namespace WebKit

Modified: trunk/Source/WebKit/UIProcess/gtk/GtkSettingsManager.cpp (290987 => 290988)


--- trunk/Source/WebKit/UIProcess/gtk/GtkSettingsManager.cpp	2022-03-08 13:42:11 UTC (rev 290987)
+++ trunk/Source/WebKit/UIProcess/gtk/GtkSettingsManager.cpp	2022-03-08 14:50:34 UTC (rev 290988)
@@ -118,6 +118,13 @@
     return buttonSetting ? true : false;
 }
 
+bool GtkSettingsManager::overlayScrolling() const
+{
+    gboolean overlayScrollingSetting;
+    g_object_get(m_settings, "gtk-overlay-scrolling", &overlayScrollingSetting, nullptr);
+    return overlayScrollingSetting ? true : false;
+}
+
 void GtkSettingsManager::settingsDidChange()
 {
     GtkSettingsState state;
@@ -162,6 +169,10 @@
     if (m_settingsState.primaryButtonWarpsSlider != primaryButtonWarpsSlider)
         m_settingsState.primaryButtonWarpsSlider = state.primaryButtonWarpsSlider = primaryButtonWarpsSlider;
 
+    auto overlayScrolling = this->overlayScrolling();
+    if (m_settingsState.overlayScrolling != overlayScrolling)
+        m_settingsState.overlayScrolling = state.overlayScrolling = overlayScrolling;
+
     for (auto& processPool : WebProcessPool::allProcessPools())
         processPool->sendToAllProcesses(Messages::GtkSettingsManagerProxy::SettingsDidChange(state));
 }
@@ -183,6 +194,7 @@
     m_settingsState.cursorBlink = cursorBlink();
     m_settingsState.cursorBlinkTime = cursorBlinkTime();
     m_settingsState.primaryButtonWarpsSlider = primaryButtonWarpsSlider();
+    m_settingsState.overlayScrolling = overlayScrolling();
 
     g_signal_connect_swapped(m_settings, "notify::gtk-theme-name", G_CALLBACK(settingsChangedCallback), this);
     g_signal_connect_swapped(m_settings, "notify::gtk-font-name", G_CALLBACK(settingsChangedCallback), this);
@@ -194,6 +206,7 @@
     g_signal_connect_swapped(m_settings, "notify::gtk-cursor-blink", G_CALLBACK(settingsChangedCallback), this);
     g_signal_connect_swapped(m_settings, "notify::gtk-cursor-blink-time", G_CALLBACK(settingsChangedCallback), this);
     g_signal_connect_swapped(m_settings, "notify::gtk-primary-button-warps-slider", G_CALLBACK(settingsChangedCallback), this);
+    g_signal_connect_swapped(m_settings, "notify::gtk-overlay-scrolling", G_CALLBACK(settingsChangedCallback), this);
 }
 
 } // namespace WebKit

Modified: trunk/Source/WebKit/UIProcess/gtk/GtkSettingsManager.h (290987 => 290988)


--- trunk/Source/WebKit/UIProcess/gtk/GtkSettingsManager.h	2022-03-08 13:42:11 UTC (rev 290987)
+++ trunk/Source/WebKit/UIProcess/gtk/GtkSettingsManager.h	2022-03-08 14:50:34 UTC (rev 290988)
@@ -53,6 +53,7 @@
     bool cursorBlink() const;
     int cursorBlinkTime() const;
     bool primaryButtonWarpsSlider() const;
+    bool overlayScrolling() const;
 
     GtkSettings* m_settings;
     GtkSettingsState m_settingsState;

Modified: trunk/Source/WebKit/WebProcess/gtk/GtkSettingsManagerProxy.cpp (290987 => 290988)


--- trunk/Source/WebKit/WebProcess/gtk/GtkSettingsManagerProxy.cpp	2022-03-08 13:42:11 UTC (rev 290987)
+++ trunk/Source/WebKit/WebProcess/gtk/GtkSettingsManagerProxy.cpp	2022-03-08 14:50:34 UTC (rev 290988)
@@ -85,6 +85,9 @@
 
     if (state.primaryButtonWarpsSlider)
         g_object_set(m_settings, "gtk-primary-button-warps-slider", *state.primaryButtonWarpsSlider, nullptr);
+
+    if (state.overlayScrolling)
+        g_object_set(m_settings, "gtk-overlay-scrolling", *state.overlayScrolling, nullptr);
 }
 
 } // namespace WebKit
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to