diff --git a/sway/config/output.c b/sway/config/output.c index 7c2df6ec..f24e7d66 100644 --- a/sway/config/output.c +++ b/sway/config/output.c @@ -179,10 +179,6 @@ void apply_output_config(struct output_config *oc, struct sway_output *output) { if (oc && oc->enabled == 0) { if (output->enabled) { - if (output->bg_pid != 0) { - terminate_swaybg(output->bg_pid); - output->bg_pid = 0; - } output_disable(output); wlr_output_layout_remove(root->output_layout, wlr_output); } diff --git a/sway/tree/output.c b/sway/tree/output.c index 6ff95579..95ab9378 100644 --- a/sway/tree/output.c +++ b/sway/tree/output.c @@ -225,6 +225,11 @@ void output_disable(struct sway_output *output) { root_for_each_container(untrack_output, output); + if (output->bg_pid) { + terminate_swaybg(output->bg_pid); + output->bg_pid = 0; + } + int index = list_find(root->outputs, output); list_del(root->outputs, index);