summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Ser <[email protected]>2022-11-08 17:43:49 +0100
committerAlexander Orzechowski <[email protected]>2022-11-08 16:47:59 +0000
commita71111fdea69b3134b33fce899149ade274a8232 (patch)
treefe7197e2120e29b48bd661d3f0a3ddf4466bcaac
parent13330063c46f6f3261b72d5b268a1cb5f503a90c (diff)
scene: destroy addons before cleaning up internal state
This allows addons to access wlr_scene_node/wlr_scene_surface fields to clean up themselves.
-rw-r--r--wlr_scene.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/wlr_scene.c b/wlr_scene.c
index 1be2d13..0eed588 100644
--- a/wlr_scene.c
+++ b/wlr_scene.c
@@ -87,6 +87,7 @@ void wlr_scene_node_destroy(struct wlr_scene_node *node) {
// in case the destroy signal would like to remove children before they
// are recursively destroyed.
wl_signal_emit_mutable(&node->events.destroy, NULL);
+ wlr_addon_set_finish(&node->addons);
wlr_scene_node_set_enabled(node, false);
@@ -130,7 +131,6 @@ void wlr_scene_node_destroy(struct wlr_scene_node *node) {
}
}
- wlr_addon_set_finish(&node->addons);
wl_list_remove(&node->link);
pixman_region32_fini(&node->visible);
free(node);