[mutter] wayland/subsurface: Handle node unlinking on parent destroyed
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] wayland/subsurface: Handle node unlinking on parent destroyed
- Date: Thu, 2 Sep 2021 21:41:19 +0000 (UTC)
commit f41696b0fc96227ab82c2f417198353fe11922e6
Author: Robert Mader <robert mader posteo de>
Date: Fri Aug 6 13:10:52 2021 +0200
wayland/subsurface: Handle node unlinking on parent destroyed
It concerns subsurface state and the subsurface already listenes
for the parent to get destroyed.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1958>
src/wayland/meta-wayland-subsurface.c | 1 +
src/wayland/meta-wayland-surface.c | 16 +---------------
2 files changed, 2 insertions(+), 15 deletions(-)
---
diff --git a/src/wayland/meta-wayland-subsurface.c b/src/wayland/meta-wayland-subsurface.c
index 9f32094766..7e996f4d34 100644
--- a/src/wayland/meta-wayland-subsurface.c
+++ b/src/wayland/meta-wayland-subsurface.c
@@ -502,6 +502,7 @@ surface_handle_parent_surface_destroyed (struct wl_listener *listener,
surface,
sub.parent_destroy_listener);
+ g_node_unlink (surface->subsurface_branch_node);
surface->sub.parent = NULL;
}
diff --git a/src/wayland/meta-wayland-surface.c b/src/wayland/meta-wayland-surface.c
index 872ee6c496..630c76c8aa 100644
--- a/src/wayland/meta-wayland-surface.c
+++ b/src/wayland/meta-wayland-surface.c
@@ -1415,13 +1415,6 @@ meta_wayland_surface_notify_unmapped (MetaWaylandSurface *surface)
g_signal_emit (surface, surface_signals[SURFACE_UNMAPPED], 0);
}
-static void
-unlink_note (GNode *node,
- gpointer data)
-{
- g_node_unlink (node);
-}
-
static void
wl_surface_destructor (struct wl_resource *resource)
{
@@ -1474,14 +1467,7 @@ wl_surface_destructor (struct wl_resource *resource)
if (surface->wl_subsurface)
wl_resource_destroy (surface->wl_subsurface);
- if (surface->subsurface_branch_node)
- {
- g_node_children_foreach (surface->subsurface_branch_node,
- G_TRAVERSE_NON_LEAVES,
- unlink_note,
- NULL);
- g_clear_pointer (&surface->subsurface_branch_node, g_node_destroy);
- }
+ g_clear_pointer (&surface->subsurface_branch_node, g_node_destroy);
g_hash_table_destroy (surface->shortcut_inhibited_seats);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]