aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Pospelov <kupospelov@gmail.com>2021-01-30 10:11:09 +0100
committerSimon Ser <contact@emersion.fr>2021-01-30 11:24:43 +0100
commit8b7008a2962ac44510531c066adef73e01e653eb (patch)
tree5e40873ea528f263902850a0e4f8f643ef0f60d3
parentf8c6fc1944304ede26fc2f6fb7020535bf4c6cce (diff)
downloadsway-8b7008a2962ac44510531c066adef73e01e653eb.tar.xz
Check the output state for recorded workspaces
Sway records pid, workspace, and output for every new process. However, if the output gets disabled and the workspace disappears, the workspace is still re-created on the disabled output. This commit adds a check for the enabled flag, so that NULL will be passed to workspace_create() in this case.
-rw-r--r--sway/tree/root.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sway/tree/root.c b/sway/tree/root.c
index ebd185ec..7a594538 100644
--- a/sway/tree/root.c
+++ b/sway/tree/root.c
@@ -270,7 +270,16 @@ found:
sway_log(SWAY_DEBUG,
"Creating workspace %s for pid %d because it disappeared",
pw->workspace, pid);
- ws = workspace_create(pw->output, pw->workspace);
+
+ struct sway_output *output = pw->output;
+ if (pw->output && !pw->output->enabled) {
+ sway_log(SWAY_DEBUG,
+ "Workspace output %s is disabled, trying another one",
+ pw->output->wlr_output->name);
+ output = NULL;
+ }
+
+ ws = workspace_create(output, pw->workspace);
}
pid_workspace_destroy(pw);