diff options
Diffstat (limited to 'mozilla-1624745.patch')
-rw-r--r-- | mozilla-1624745.patch | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/mozilla-1624745.patch b/mozilla-1624745.patch new file mode 100644 index 0000000..2a1dc06 --- /dev/null +++ b/mozilla-1624745.patch @@ -0,0 +1,33 @@ +diff --git a/widget/gtk/mozcontainer.cpp b/widget/gtk/mozcontainer.cpp +--- a/widget/gtk/mozcontainer.cpp ++++ b/widget/gtk/mozcontainer.cpp +@@ -624,17 +624,25 @@ + GdkDisplay* display = gtk_widget_get_display(GTK_WIDGET(container)); + nsWaylandDisplay* waylandDisplay = WaylandDisplayGet(display); + ++ wl_surface* parent_surface = ++ moz_gtk_widget_get_wl_surface(GTK_WIDGET(container)); ++ if (!parent_surface) { ++ return nullptr; ++ } ++ + // Available as of GTK 3.8+ + struct wl_compositor* compositor = waylandDisplay->GetCompositor(); + container->surface = wl_compositor_create_surface(compositor); +- wl_surface* parent_surface = +- moz_gtk_widget_get_wl_surface(GTK_WIDGET(container)); +- if (!container->surface || !parent_surface) { ++ if (!container->surface) { + return nullptr; + } + + container->subsurface = wl_subcompositor_get_subsurface( + waylandDisplay->GetSubcompositor(), container->surface, parent_surface); ++ if (!container->subsurface) { ++ g_clear_pointer(&container->surface, wl_surface_destroy); ++ return nullptr; ++ } + + GdkWindow* window = gtk_widget_get_window(GTK_WIDGET(container)); + gint x, y; + |