summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2020-06-13 00:52:26 +0200
committerTudor Brindus <me@tbrindus.ca>2020-06-12 19:37:19 -0400
commitf9361ae36c586d78db34307f538508ab0dd8f486 (patch)
treedc1b40ed102fcd282dcee411b90ab38b47004e3b
parent90d936d4ad614e1d3e8d0faa29de28da79b31733 (diff)
Remove view child surface_{map,unmap} listeners on destroy
-rw-r--r--sway/tree/view.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sway/tree/view.c b/sway/tree/view.c
index ec4815968..ca5af10e8 100644
--- a/sway/tree/view.c
+++ b/sway/tree/view.c
@@ -917,7 +917,9 @@ void view_child_init(struct sway_view_child *child,
// Not all child views have a map/unmap event
child->surface_map.notify = view_child_handle_surface_map;
+ wl_list_init(&child->surface_map.link);
child->surface_unmap.notify = view_child_handle_surface_unmap;
+ wl_list_init(&child->surface_unmap.link);
wl_signal_add(&view->events.unmap, &child->view_unmap);
child->view_unmap.notify = view_child_handle_view_unmap;
@@ -948,6 +950,8 @@ void view_child_destroy(struct sway_view_child *child) {
wl_list_remove(&child->surface_commit.link);
wl_list_remove(&child->surface_destroy.link);
+ wl_list_remove(&child->surface_map.link);
+ wl_list_remove(&child->surface_unmap.link);
wl_list_remove(&child->view_unmap.link);
wl_list_remove(&child->surface_new_subsurface.link);