45 lines
1.3 KiB
Diff
45 lines
1.3 KiB
Diff
|
diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
|
||
|
--- a/modules/libpref/init/all.js
|
||
|
+++ b/modules/libpref/init/all.js
|
||
|
@@ -4018,6 +4018,7 @@
|
||
|
#endif
|
||
|
#ifdef MOZ_WAYLAND
|
||
|
pref("widget.wayland_vsync.enabled", false);
|
||
|
+ pref("widget.wayland.use-opaque-region", true);
|
||
|
#endif
|
||
|
|
||
|
// All the Geolocation preferences are here.
|
||
|
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
|
||
|
--- a/widget/gtk/nsWindow.cpp
|
||
|
+++ b/widget/gtk/nsWindow.cpp
|
||
|
@@ -333,6 +333,7 @@
|
||
|
static bool gGlobalsInitialized = false;
|
||
|
static bool gRaiseWindows = true;
|
||
|
static bool gUseWaylandVsync = false;
|
||
|
+static bool gUseWaylandUseOpaqueRegion = true;
|
||
|
static GList* gVisibleWaylandPopupWindows = nullptr;
|
||
|
|
||
|
#if GTK_CHECK_VERSION(3, 4, 0)
|
||
|
@@ -4955,6 +4956,10 @@
|
||
|
}
|
||
|
|
||
|
void nsWindow::UpdateTopLevelOpaqueRegionWayland(bool aSubtractCorners) {
|
||
|
+ if (!gUseWaylandUseOpaqueRegion) {
|
||
|
+ return;
|
||
|
+ }
|
||
|
+
|
||
|
wl_surface* surface = moz_gtk_widget_get_wl_surface(GTK_WIDGET(mShell));
|
||
|
if (!surface) {
|
||
|
return;
|
||
|
@@ -6690,6 +6695,9 @@
|
||
|
Preferences::GetBool("mozilla.widget.raise-on-setfocus", true);
|
||
|
gUseWaylandVsync =
|
||
|
Preferences::GetBool("widget.wayland_vsync.enabled", false);
|
||
|
+ gUseWaylandUseOpaqueRegion =
|
||
|
+ Preferences::GetBool("widget.wayland.use-opaque-region", true);
|
||
|
+
|
||
|
return NS_OK;
|
||
|
}
|
||
|
|
||
|
|