aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2024-11-22 17:31:15 -0500
committerFurkan Sahin <furkan-dev@proton.me>2024-11-22 17:31:15 -0500
commite5d1b9c556fac6c4ff1f7ed6531b075752ec1853 (patch)
treecf5b3a9e574c7b7ce5f01c663efc2be18f13a08f
parent276b9a91d3d2249ddad878615bd119017e662851 (diff)
tree/container: remove output_{enter,leave} listeners in destroy
https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/0d6cc471e95c1632b234fc9152659d24fe5982f1 added an assert that all signals are clear when destroying a wlr_scene_buffer, which is currently triggering due to sway not removing the output_enter and output_leave listeners on the container before calling wlr_scene_node_destroy on output_handler. Remove the listeners before wlr_scene_node_destroy is called.
-rw-r--r--sway/tree/container.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sway/tree/container.c b/sway/tree/container.c
index 62bff1ea..a04c4c36 100644
--- a/sway/tree/container.c
+++ b/sway/tree/container.c
@@ -508,6 +508,8 @@ void container_destroy(struct sway_container *con) {
if (con->view && con->view->container == con) {
con->view->container = NULL;
+ wl_list_remove(&con->output_enter.link);
+ wl_list_remove(&con->output_leave.link);
wlr_scene_node_destroy(&con->output_handler->node);
if (con->view->destroying) {
view_destroy(con->view);