[gtk/wip/chergert/quartz4u: 65/65] macos: always discover target surface



commit a140cd4b4973b25c12ce298d15927796f383fdac
Author: Christian Hergert <chergert redhat com>
Date:   Wed May 13 16:55:50 2020 -0700

    macos: always discover target surface
    
    we can't seem to rely on [nsevent window] to be the window we care about.
    
    instead, just discover it based on our tracking of windows.

 gdk/macos/gdkmacosdisplay-translate.c | 21 ++++++---------------
 1 file changed, 6 insertions(+), 15 deletions(-)
---
diff --git a/gdk/macos/gdkmacosdisplay-translate.c b/gdk/macos/gdkmacosdisplay-translate.c
index c8aed644b1..658b959ef6 100644
--- a/gdk/macos/gdkmacosdisplay-translate.c
+++ b/gdk/macos/gdkmacosdisplay-translate.c
@@ -687,6 +687,8 @@ _gdk_macos_display_translate (GdkMacosDisplay *self,
   NSWindow *nswindow;
   GdkEvent *ret = NULL;
   NSPoint point;
+  int x_tmp;
+  int y_tmp;
 
   g_return_val_if_fail (GDK_IS_MACOS_DISPLAY (self), NULL);
   g_return_val_if_fail (nsevent != NULL, NULL);
@@ -709,22 +711,11 @@ _gdk_macos_display_translate (GdkMacosDisplay *self,
       return NULL;
     }
 
-  /* Make sure the event has a window */
-  if (!(nswindow = [nsevent window]))
-    {
-      int x_tmp;
-      int y_tmp;
-
-      if (!(nswindow = _gdk_macos_display_find_native_under_pointer (self, &x_tmp, &y_tmp)))
-        return NULL;
+  if (!(nswindow = _gdk_macos_display_find_native_under_pointer (self, &x_tmp, &y_tmp)))
+    return NULL;
 
-      point.x = x_tmp;
-      point.y = y_tmp;
-    }
-  else
-    {
-      point = [[nswindow contentView] convertPoint:[nsevent locationInWindow] fromView:nil];
-    }
+  point.x = x_tmp;
+  point.y = y_tmp;
 
   /* Ignore unless it is for a GdkMacosWindow */
   if (!GDK_IS_MACOS_WINDOW (nswindow))


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]