diff options
author | db <github@benedik.si> | 2018-05-01 17:38:55 +0200 |
---|---|---|
committer | db <github@benedik.si> | 2018-05-01 19:05:32 +0200 |
commit | 22170bde77a92126ab5c183604634bbb2b89a10a (patch) | |
tree | 926b0553f47eb786dc0c40ab99d2d56ebc64c66b /sway/tree | |
parent | 0e51c7be449dd68025d5acd8c634f8dcacb10a16 (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.c | 3 |
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; |