macos: Fix freeze on drag
authorArjan Molenaar <gaphor@gmail.com>
Sat, 3 Dec 2022 21:55:32 +0000 (22:55 +0100)
committerArjan Molenaar <gaphor@gmail.com>
Tue, 13 Dec 2022 14:19:04 +0000 (15:19 +0100)
A Drag surface does not have a parent surface. Therefore, if we initialize
it with one, it's inheriting the frame clock from the parent, but the
drag surface is not linked to the parent. Once the drag surface is destroyed,
it's disposing the frame clock, which results in a "frozen" application.

gdk/macos/gdkmacossurface.c

index ef0b5efa17c7afa13bbd8aa030b76f445d7de8fd..37400d18927081511260845f3c84199a98bb2c7e 100644 (file)
@@ -431,7 +431,7 @@ gdk_macos_surface_drag_begin (GdkSurface         *surface,
   _gdk_macos_surface_get_root_coords (GDK_MACOS_SURFACE (surface), &sx, &sy);
   drag_surface = _gdk_macos_surface_new (GDK_MACOS_DISPLAY (surface->display),
                                          GDK_SURFACE_DRAG,
-                                         surface,
+                                         NULL,
                                          sx, sy, 1, 1);
   drag = g_object_new (GDK_TYPE_MACOS_DRAG,
                        "drag-surface", drag_surface,