diff options
Diffstat (limited to 'D133885.diff')
-rw-r--r-- | D133885.diff | 33 |
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); + |