summaryrefslogtreecommitdiff
path: root/mozilla-1767916-multimonitor-crash.patch
diff options
context:
space:
mode:
Diffstat (limited to 'mozilla-1767916-multimonitor-crash.patch')
-rw-r--r--mozilla-1767916-multimonitor-crash.patch21
1 files changed, 21 insertions, 0 deletions
diff --git a/mozilla-1767916-multimonitor-crash.patch b/mozilla-1767916-multimonitor-crash.patch
new file mode 100644
index 0000000..7ca3a2e
--- /dev/null
+++ b/mozilla-1767916-multimonitor-crash.patch
@@ -0,0 +1,21 @@
+diff --git a/widget/gtk/MozContainerWayland.cpp b/widget/gtk/MozContainerWayland.cpp
+--- a/widget/gtk/MozContainerWayland.cpp
++++ b/widget/gtk/MozContainerWayland.cpp
+@@ -527,10 +527,16 @@
+ return;
+ }
+
+ LOGWAYLAND("%s [%p] scale %d\n", __FUNCTION__,
+ (void*)moz_container_get_nsWindow(container), scale);
++ // There is a chance that the attached wl_buffer has not yet been doubled
++ // on the main thread when scale factor changed to 2. This leads to
++ // crash with the following message:
++ // Buffer size (AxB) must be an integer multiple of the buffer_scale (2)
++ // Removing the possibly wrong wl_buffer to prevent that crash:
++ wl_surface_attach(wl_container->surface, nullptr, 0, 0);
+ wl_surface_set_buffer_scale(wl_container->surface, scale);
+ wl_container->buffer_scale = scale;
+ }
+ }
+
+
bgstack15