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 | Merge pull request #1874 from RyanDwyer/borders (diff) | |
download | sway-22170bde77a92126ab5c183604634bbb2b89a10a.tar.gz sway-22170bde77a92126ab5c183604634bbb2b89a10a.tar.zst sway-22170bde77a92126ab5c183604634bbb2b89a10a.zip |
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 | |||
128 | struct wlr_output *wlr_output = output->sway_output->wlr_output; | 128 | struct wlr_output *wlr_output = output->sway_output->wlr_output; |
129 | 129 | ||
130 | if (oc && oc->enabled == 0) { | 130 | if (oc && oc->enabled == 0) { |
131 | if (output->sway_output->bg_pid != 0) { | ||
132 | terminate_swaybg(output->sway_output->bg_pid); | ||
133 | output->sway_output->bg_pid = 0; | ||
134 | } | ||
131 | container_destroy(output); | 135 | container_destroy(output); |
132 | wlr_output_layout_remove(root_container.sway_root->output_layout, | 136 | wlr_output_layout_remove(root_container.sway_root->output_layout, |
133 | wlr_output); | 137 | wlr_output); |