summaryrefslogtreecommitdiff
path: root/D133885.diff
diff options
context:
space:
mode:
Diffstat (limited to 'D133885.diff')
-rw-r--r--D133885.diff33
1 files changed, 33 insertions, 0 deletions
diff --git a/D133885.diff b/D133885.diff
new file mode 100644
index 0000000..246fc2a
--- /dev/null
+++ b/D133885.diff
@@ -0,0 +1,33 @@
+diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
+--- a/widget/gtk/nsWindow.cpp
++++ b/widget/gtk/nsWindow.cpp
+@@ -2868,7 +2868,7 @@
+ LOGW("nsWindow::RequestFocusWaylandWindow(%p) gFocusWindow %p",
+ (void*)aWindow, gFocusWindow);
+
+- if (!gFocusWindow) {
++ if (!gFocusWindow || gFocusWindow->IsDestroyed()) {
+ LOGW(" missing gFocusWindow, quit.");
+ }
+
+@@ -2883,13 +2883,16 @@
+ uint32_t focusSerial;
+ KeymapWrapper::GetFocusInfo(&focusSurface, &focusSerial);
+ if (!focusSurface) {
+- LOGW(" We're missing focused window, quit.");
++ LOGW(" We're missing KeymapWrapper focused window, quit.");
+ return;
+ }
+
+ GdkWindow* gdkWindow = gtk_widget_get_window(gFocusWindow->mShell);
+- wl_surface* surface =
+- gdkWindow ? gdk_wayland_window_get_wl_surface(gdkWindow) : nullptr;
++ if (!gdkWindow) {
++ LOGW(" gFocusWindow is not mapped, quit.");
++ return;
++ }
++ wl_surface* surface = gdk_wayland_window_get_wl_surface(gdkWindow);
+ if (focusSurface != surface) {
+ LOGW(" focused surface %p and gFocusWindow surface %p don't match, quit.",
+ focusSurface, surface);
+
bgstack15