macos: Add surface from ::constructed()
authorBenjamin Otte <otte@redhat.com>
Fri, 21 Apr 2023 19:59:31 +0000 (21:59 +0200)
committerBenjamin Otte <otte@redhat.com>
Wed, 26 Apr 2023 19:03:34 +0000 (21:03 +0200)
gdk/macos/gdkmacosdisplay-private.h
gdk/macos/gdkmacosdisplay.c
gdk/macos/gdkmacosdragsurface.c
gdk/macos/gdkmacospopupsurface.c
gdk/macos/gdkmacossurface.c

index 95f61bbe1785c2eb36baa8eafa89ab4d7e64bf36..a1acaaf31d6799e2b48fe6c505704e7940c6c615 100644 (file)
@@ -121,6 +121,8 @@ GdkMonitor      *_gdk_macos_display_get_monitor_at_coords          (GdkMacosDisp
 GdkMonitor      *_gdk_macos_display_get_monitor_at_display_coords  (GdkMacosDisplay *self,
                                                                     int              x,
                                                                     int              y);
+void             _gdk_macos_display_surface_added                  (GdkMacosDisplay *self,
+                                                                    GdkMacosSurface *surface);
 GdkEvent        *_gdk_macos_display_translate                      (GdkMacosDisplay *self,
                                                                     NSEvent         *event);
 void             _gdk_macos_display_feedback_init                  (GdkMacosDisplay *self);
index 5c81bd6eea3ac4be9a7e212d814e49f764f90f7d..d4996239eb2839c746c74d37e6fecb168c87723c 100644 (file)
@@ -333,7 +333,7 @@ gdk_macos_display_queue_events (GdkDisplay *display)
     }
 }
 
-static void
+void
 _gdk_macos_display_surface_added (GdkMacosDisplay *self,
                                   GdkMacosSurface *surface)
 {
@@ -552,9 +552,6 @@ gdk_macos_display_create_surface (GdkDisplay     *display,
 
   surface = _gdk_macos_surface_new (self, surface_type, parent);
 
-  if (surface != NULL)
-    _gdk_macos_display_surface_added (self, surface);
-
   return GDK_SURFACE (surface);
 }
 
index d2acbcbe9324cf15cad4be8f6c469ec74b8ab876..138d23d2211fd8a6a3131cfd5cddcceb04521923 100644 (file)
@@ -71,7 +71,7 @@ _gdk_macos_drag_surface_constructed (GObject *object)
   GdkMacosWindow *window;
   GdkMacosSurface *self = GDK_MACOS_SURFACE (object);
   GdkSurface *surface = GDK_SURFACE (self);
-  GdkDisplay *display = gdk_surface_get_display (GDK_SURFACE (self));
+  GdkMacosDisplay *display = GDK_MACOS_DISPLAY (gdk_surface_get_display (GDK_SURFACE (self)));
   GdkFrameClock *frame_clock;
   NSScreen *screen;
   NSUInteger style_mask;
@@ -129,9 +129,7 @@ _gdk_macos_drag_surface_new (GdkMacosDisplay *display)
 {
   g_return_val_if_fail (GDK_IS_MACOS_DISPLAY (display), NULL);
 
-  self = g_object_new (GDK_TYPE_MACOS_DRAG_SURFACE,
+  return g_object_new (GDK_TYPE_MACOS_DRAG_SURFACE,
                        "display", display,
                        NULL);
-
-  return g_steal_pointer (&self);
 }
index 0c9f3c58b70cf33fb7dccf9c462b01dd206e8a6e..40049aeeb566b2267a3e5738b541f22cfd75d16e 100644 (file)
@@ -291,7 +291,7 @@ _gdk_macos_popup_surface_constructed (GObject *object)
   GdkMacosWindow *window;
   GdkMacosPopupSurface *self = GDK_MACOS_POPUP_SURFACE (object);
   GdkSurface *surface = GDK_SURFACE (self);
-  GdkDisplay *display = gdk_surface_get_display (GDK_SURFACE (self));
+  GdkMacosDisplay *display = GDK_MACOS_DISPLAY (gdk_surface_get_display (GDK_SURFACE (self)));
   NSScreen *screen;
   NSUInteger style_mask;
   NSRect content_rect;
index aae78840c6634436e4d19954e9b771af563c91c1..51f6ff0cade797ccb440962d3d780281ee07e3c3 100644 (file)
@@ -522,6 +522,9 @@ gdk_macos_surface_constructed (GObject *object)
 
   if (self->window != NULL)
     _gdk_macos_surface_configure (self);
+
+  _gdk_macos_display_surface_added (GDK_MACOS_DISPLAY (gdk_surface_get_display (GDK_SURFACE (self))),
+                                    self);
 }
 
 static void