summaryrefslogtreecommitdiff
path: root/sway/tree/output.c
diff options
context:
space:
mode:
authorBrian Ashworth <[email protected]>2018-11-11 11:22:38 -0500
committerBrian Ashworth <[email protected]>2018-11-11 11:22:38 -0500
commit12876932a948d7265745efaccafea509bdbaffe8 (patch)
tree458a3acb6db39a78d26b4ce38ea637aa21812e29 /sway/tree/output.c
parent80a1c340a9c8c8aac5fe4dd7bc1dc15b43fce0dc (diff)
Allow multiple outputs for workspace output
`i3 4.16` allows users to list multiple outputs for a workspace and the first available will be used. The syntax is as follows: `workspace <workspace> output <outputs...>` Additionally when the workspace is created, the outputs get added to the output priority list in the order specified. This ensures that if a higher output gets connected, the workspace will move to the higher output. This works the same way as if the user had a workspace on an output, disconnected the output, and then later reconnected the output.
Diffstat (limited to 'sway/tree/output.c')
-rw-r--r--sway/tree/output.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sway/tree/output.c b/sway/tree/output.c
index 2704920d..3c4614a8 100644
--- a/sway/tree/output.c
+++ b/sway/tree/output.c
@@ -31,6 +31,13 @@ static void restore_workspaces(struct sway_output *output) {
j--;
}
}
+
+ if (other->workspaces->length == 0) {
+ char *next = workspace_next_name(other->wlr_output->name);
+ struct sway_workspace *ws = workspace_create(other, next);
+ free(next);
+ ipc_event_workspace(NULL, ws, "init");
+ }
}
// Saved workspaces