diff options
Diffstat (limited to 'D145541.diff')
-rw-r--r-- | D145541.diff | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/D145541.diff b/D145541.diff new file mode 100644 index 0000000..7ca3a2e --- /dev/null +++ b/D145541.diff @@ -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; + } + } + + |