[gtk/wip/chergert/fix-macos-window-check] macos: ensure GdkMacosWindow in surface discovery




commit d888402bf9eed48a5b0c8c2f5dc91b1edcd7897d
Author: Christian Hergert <chergert redhat com>
Date:   Thu Dec 31 10:44:19 2020 -0800

    macos: ensure GdkMacosWindow in surface discovery
    
    We want to ignore windows that are not related to those controlled
    by the GDK backend.
    
    Fixes #3533

 gdk/macos/gdkmacosdisplay-translate.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
---
diff --git a/gdk/macos/gdkmacosdisplay-translate.c b/gdk/macos/gdkmacosdisplay-translate.c
index 5f5eeffdcf..b638b87ab9 100644
--- a/gdk/macos/gdkmacosdisplay-translate.c
+++ b/gdk/macos/gdkmacosdisplay-translate.c
@@ -762,7 +762,7 @@ get_surface_from_ns_event (GdkMacosDisplay *self,
   GdkSurface *surface = NULL;
   NSWindow *nswindow = [nsevent window];
 
-  if (nswindow)
+  if (GDK_IS_MACOS_WINDOW (nswindow))
     {
       GdkMacosBaseView *view;
       NSPoint point, view_point;
@@ -974,11 +974,11 @@ find_surface_for_ns_event (GdkMacosDisplay *self,
   g_assert (x != NULL);
   g_assert (y != NULL);
 
-  view = (GdkMacosBaseView *)[[nsevent window] contentView];
-
   if (!(surface = get_surface_from_ns_event (self, nsevent, &point, x, y)))
     return NULL;
 
+  view = (GdkMacosBaseView *)[GDK_MACOS_SURFACE (surface)->window contentView];
+
   _gdk_macos_display_from_display_coords (self, point.x, point.y, &x_tmp, &y_tmp);
 
   switch ((int)[nsevent type])


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