diff options
author | Konstantin Pospelov <kupospelov@gmail.com> | 2021-01-30 10:11:09 +0100 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2021-01-30 11:24:43 +0100 |
commit | 8b7008a2962ac44510531c066adef73e01e653eb (patch) | |
tree | 5e40873ea528f263902850a0e4f8f643ef0f60d3 /sway/tree/root.c | |
parent | f8c6fc1944304ede26fc2f6fb7020535bf4c6cce (diff) |
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.
Diffstat (limited to 'sway/tree/root.c')
-rw-r--r-- | sway/tree/root.c | 11 |
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); |