aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorViolet Purcell <vimproved@inventati.org>2024-11-22 17:31:15 -0500
committerKirill Primak <vyivel@eclair.cafe>2024-11-23 13:10:06 +0300
commit4faf0f90988b854d354ce1c8d152884294269de0 (patch)
treecf5b3a9e574c7b7ce5f01c663efc2be18f13a08f
parentbbadf9b8b10d171a6d5196da7716ea50ee7a6062 (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);