macos: drop enter/exit when in manual drag/resize
authorChristian Hergert <christian@hergert.me>
Wed, 9 Mar 2022 21:20:53 +0000 (13:20 -0800)
committerChristian Hergert <christian@hergert.me>
Wed, 9 Mar 2022 21:20:53 +0000 (13:20 -0800)
If we are in a manual resize/drag then we don't want to generate crossing
events as they can just confuse things.

gdk/macos/gdkmacosdisplay-translate.c

index e3fb03fea51bdc0e5eae6fb03fccfb325b87a3dd..fe4701c39d441d5359b0bd04c398f997e6473cd7 100644 (file)
@@ -1200,7 +1200,11 @@ _gdk_macos_display_translate (GdkMacosDisplay *self,
         GdkDevice *pointer = gdk_seat_get_pointer (seat);
         GdkDeviceGrabInfo *grab = _gdk_display_get_last_device_grab (GDK_DISPLAY (self), pointer);
 
-        if (grab == NULL)
+        if ([(GdkMacosWindow *)window isInManualResizeOrMove])
+          {
+            ret = GDK_MACOS_EVENT_DROP;
+          }
+        else if (grab == NULL)
           {
             if (event_type == NSEventTypeMouseExited)
               [[NSCursor arrowCursor] set];