broadway: Pass parent as a construct argument
authorBenjamin Otte <otte@redhat.com>
Mon, 17 Apr 2023 00:32:13 +0000 (02:32 +0200)
committerBenjamin Otte <otte@redhat.com>
Wed, 26 Apr 2023 19:03:34 +0000 (21:03 +0200)
gdk/broadway/gdksurface-broadway.c

index b5483c18faabf6c1e9848fd3b8c0fb34d1d77bce..01dfece84d1d093638945b2bd99f2894b09b1c6b 100644 (file)
@@ -216,7 +216,6 @@ gdk_broadway_display_create_surface (GdkDisplay     *display,
   GdkFrameClock *frame_clock;
   GdkSurface *surface;
   GdkBroadwaySurface *impl;
-  GType type;
 
   if (parent)
     frame_clock = g_object_ref (gdk_surface_get_frame_clock (parent));
@@ -226,28 +225,31 @@ gdk_broadway_display_create_surface (GdkDisplay     *display,
   switch (surface_type)
     {
     case GDK_SURFACE_TOPLEVEL:
-      type = GDK_TYPE_BROADWAY_TOPLEVEL;
+      surface = g_object_new (GDK_TYPE_BROADWAY_TOPLEVEL,
+                              "display", display,
+                              "frame-clock", frame_clock,
+                              NULL);
       break;
     case GDK_SURFACE_POPUP:
-      type = GDK_TYPE_BROADWAY_POPUP;
+      surface = g_object_new (GDK_TYPE_BROADWAY_POPUP,
+                              "parent", parent,
+                              "display", display,
+                              "frame-clock", frame_clock,
+                              NULL);
       break;
     case GDK_SURFACE_DRAG:
-      type = GDK_TYPE_BROADWAY_DRAG_SURFACE;
+      surface = g_object_new (GDK_TYPE_BROADWAY_DRAG_SURFACE,
+                              "display", display,
+                              "frame-clock", frame_clock,
+                              NULL);
       break;
     default:
       g_assert_not_reached ();
       break;
     }
 
-  surface = g_object_new (type,
-                          "display", display,
-                          "frame-clock", frame_clock,
-                          NULL);
-
   g_object_unref (frame_clock);
 
-  surface->parent = parent;
-
   broadway_display = GDK_BROADWAY_DISPLAY (display);
 
   impl = GDK_BROADWAY_SURFACE (surface);