From 22170bde77a92126ab5c183604634bbb2b89a10a Mon Sep 17 00:00:00 2001 From: db Date: Tue, 1 May 2018 17:38:55 +0200 Subject: 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. --- sway/config/output.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'sway/config') 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); -- cgit v1.2.3