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/config | |
parent | 0e51c7be449dd68025d5acd8c634f8dcacb10a16 (diff) | |
download | sway-22170bde77a92126ab5c183604634bbb2b89a10a.tar.xz |
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/config')
-rw-r--r-- | sway/config/output.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sway/config/output.c b/sway/config/output.c index 1c298d37..68022278 100644 --- a/sway/config/output.c +++ b/sway/config/output.c @@ -128,6 +128,10 @@ void apply_output_config(struct output_config *oc, struct sway_container *output struct wlr_output *wlr_output = output->sway_output->wlr_output; if (oc && oc->enabled == 0) { + if (output->sway_output->bg_pid != 0) { + terminate_swaybg(output->sway_output->bg_pid); + output->sway_output->bg_pid = 0; + } container_destroy(output); wlr_output_layout_remove(root_container.sway_root->output_layout, wlr_output); |