[gtk/wip/chergert/quartz4u] macos: actually show the popup



commit b95a1a9f1c34e7f076afaf6667992e88514e6e1a
Author: Christian Hergert <chergert redhat com>
Date:   Fri May 8 14:18:16 2020 -0700

    macos: actually show the popup

 gdk/macos/gdkmacospopupsurface.c | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)
---
diff --git a/gdk/macos/gdkmacospopupsurface.c b/gdk/macos/gdkmacospopupsurface.c
index 85d6cbc59f..b845fadc92 100644
--- a/gdk/macos/gdkmacospopupsurface.c
+++ b/gdk/macos/gdkmacospopupsurface.c
@@ -74,12 +74,22 @@ gdk_macos_popup_surface_layout (GdkMacosPopupSurface *self,
 
 }
 
+static void
+show_popup (GdkMacosPopupSurface *self)
+{
+  NSWindow *nswindow = _gdk_macos_surface_get_native (GDK_MACOS_SURFACE (self));
+
+  [(GdkMacosWindow *)nswindow showAndMakeKey:NO];
+
+  _gdk_macos_surface_show (GDK_MACOS_SURFACE (self));
+}
+
 static void
 show_grabbing_popup (GdkSeat    *seat,
                      GdkSurface *surface,
                      gpointer    user_data)
 {
-  _gdk_macos_surface_show (GDK_MACOS_SURFACE (surface));
+  show_popup (GDK_MACOS_POPUP_SURFACE (surface));
 }
 
 static gboolean
@@ -112,7 +122,7 @@ gdk_macos_popup_surface_present (GdkPopup       *popup,
     }
   else
     {
-      _gdk_macos_surface_show (GDK_MACOS_SURFACE (self));
+      show_popup (GDK_MACOS_POPUP_SURFACE (self));
     }
 
   return GDK_SURFACE_IS_MAPPED (GDK_SURFACE (self));
@@ -275,6 +285,9 @@ _gdk_macos_popup_surface_new (GdkMacosDisplay *display,
                                                  defer:NO
                                                 screen:screen];
 
+  [window setOpaque:NO];
+  [window setBackgroundColor:[NSColor clearColor]];
+
   self = g_object_new (GDK_TYPE_MACOS_POPUP_SURFACE,
                        "display", display,
                        "frame-clock", frame_clock,


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