summaryrefslogtreecommitdiff
path: root/sway/tree/workspace.c
diff options
context:
space:
mode:
authorBrian Ashworth <[email protected]>2019-04-24 20:28:19 -0400
committerDrew DeVault <[email protected]>2019-04-24 19:12:24 -0600
commit462ad4ea8380f29ad7a81d65bc144cb0ac6f5d8f (patch)
tree7d83afea78abc6b9e754b05e156ab25b22dce972 /sway/tree/workspace.c
parentdc7a3930a7ffd4435c9215c7cce0afa37d06c91f (diff)
cmd_move: respect workspace layout when inserting
When moving a container to become a direct child of the workspace and the workspace's layout is tabbed or stacked, wrap it in a container with the same layout. This allows for the following: - Run `layout tabbed|stacked` on an empty workspace (or use `workspace_layout tabbed|stacked` in the config) - Open some views - Move one of the views in any direction - Open another view - The new container should also be `tabbed`/`stacked`
Diffstat (limited to 'sway/tree/workspace.c')
-rw-r--r--sway/tree/workspace.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sway/tree/workspace.c b/sway/tree/workspace.c
index 68a55e03..1a1f5c49 100644
--- a/sway/tree/workspace.c
+++ b/sway/tree/workspace.c
@@ -688,6 +688,9 @@ void workspace_insert_tiling(struct sway_workspace *workspace,
if (con->workspace) {
container_detach(con);
}
+ if (workspace->layout == L_STACKED || workspace->layout == L_TABBED) {
+ con = container_split(con, workspace->layout);
+ }
list_insert(workspace->tiling, index, con);
con->workspace = workspace;
container_for_each_child(con, set_workspace, NULL);