aboutsummaryrefslogtreecommitdiff
path: root/sway/tree
diff options
context:
space:
mode:
authordb <github@benedik.si>2018-05-01 17:38:55 +0200
committerdb <github@benedik.si>2018-05-01 19:05:32 +0200
commit22170bde77a92126ab5c183604634bbb2b89a10a (patch)
tree926b0553f47eb786dc0c40ab99d2d56ebc64c66b /sway/tree
parent0e51c7be449dd68025d5acd8c634f8dcacb10a16 (diff)
Fix layer surface crash on output destroy
Before freeing sway_output, NULL the wlr_output reference to it. Check for that NULL in layer_shell handle_destroy. Don't damage null container in unmap. Additionaly, terminate swaybg if its output is being disabled.
Diffstat (limited to 'sway/tree')
-rw-r--r--sway/tree/container.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sway/tree/container.c b/sway/tree/container.c
index 995da5ce..6ac59547 100644
--- a/sway/tree/container.c
+++ b/sway/tree/container.c
@@ -156,6 +156,9 @@ static struct sway_container *container_output_destroy(
wl_list_remove(&output->sway_output->damage_destroy.link);
wl_list_remove(&output->sway_output->damage_frame.link);
+ // clear the wlr_output reference to this container
+ output->sway_output->wlr_output->data = NULL;
+
wlr_log(L_DEBUG, "OUTPUT: Destroying output '%s'", output->name);
_container_destroy(output);
return &root_container;