[Bf-blender-cvs] [881d1c9bc23] master: Fix crash in wayland when closing a window

Campbell Barton noreply at git.blender.org
Sat Jun 18 08:50:48 CEST 2022


Commit: 881d1c9bc234e203cff033ea02998ce99f3070cd
Author: Campbell Barton
Date:   Sat Jun 18 16:48:58 2022 +1000
Branches: master
https://developer.blender.org/rB881d1c9bc234e203cff033ea02998ce99f3070cd

Fix crash in wayland when closing a window

The focus_pointer only pointer was only cleared when the window existed,
which caused a dangling focus_pointer when closing a window.

===================================================================

M	intern/ghost/intern/GHOST_SystemWayland.cpp

===================================================================

diff --git a/intern/ghost/intern/GHOST_SystemWayland.cpp b/intern/ghost/intern/GHOST_SystemWayland.cpp
index 2d1337df1de..bff96b3c0a4 100644
--- a/intern/ghost/intern/GHOST_SystemWayland.cpp
+++ b/intern/ghost/intern/GHOST_SystemWayland.cpp
@@ -1161,12 +1161,13 @@ static void pointer_handle_leave(void *data,
                                  uint32_t /*serial*/,
                                  struct wl_surface *surface)
 {
+  /* First clear the `focus_pointer`, since the window won't exist when closing the window. */
+  static_cast<input_t *>(data)->focus_pointer = nullptr;
+
   GHOST_IWindow *win = window_from_surface(surface);
   if (!win) {
     return;
   }
-
-  static_cast<input_t *>(data)->focus_pointer = nullptr;
   static_cast<GHOST_WindowWayland *>(win)->deactivate();
 }



More information about the Bf-blender-cvs mailing list