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