macos: remove popup surface from parent
authorChristian Hergert <christian@hergert.me>
Sun, 30 Jan 2022 01:04:50 +0000 (17:04 -0800)
committerChristian Hergert <christian@hergert.me>
Fri, 4 Feb 2022 03:26:16 +0000 (19:26 -0800)
gdk/macos/gdkmacospopupsurface.c

index 6f79b6d31b0bd2093757fdc1018b7d6cf37778ae..477961503f63f3f4bb7ce6c38a7b0df81b40521d 100644 (file)
@@ -204,6 +204,10 @@ static void
 _gdk_macos_popup_surface_finalize (GObject *object)
 {
   GdkMacosPopupSurface *self = (GdkMacosPopupSurface *)object;
+  GdkSurface *parent = GDK_SURFACE (self)->parent;
+
+  if (parent != NULL)
+    parent->children = g_list_remove (parent->children, self);
 
   g_clear_object (&GDK_SURFACE (self)->parent);
   g_clear_pointer (&self->layout, gdk_popup_layout_unref);