aboutsummaryrefslogtreecommitdiff
path: root/sway
diff options
context:
space:
mode:
authorBrian Ashworth <bosrsf04@gmail.com>2018-12-19 03:21:41 -0500
committeremersion <contact@emersion.fr>2018-12-19 09:24:15 +0100
commit477bca5e288cc3155c536265272490b413328778 (patch)
treedf9714ab3c029e61639aa4f38e73fafaadbb91df /sway
parent3a4f4f5d6699d064845f715a849a6ab824a734b6 (diff)
Terminate swaybg in output_disable
Moves the call to `terminate_swaybg` from inside `apply_output_config` to `output_disable`. The former was only called when an output was being disabled. The latter is called when an output is being disabled and when an output becomes disconnected. Without this, disconnecting an enabled output would result in a defunct swaybg process.
Diffstat (limited to 'sway')
-rw-r--r--sway/config/output.c4
-rw-r--r--sway/tree/output.c5
2 files changed, 5 insertions, 4 deletions
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);