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`
This commit is contained in:
Brian Ashworth 2019-04-24 20:28:19 -04:00 committed by Drew DeVault
parent dc7a3930a7
commit 462ad4ea83
2 changed files with 7 additions and 2 deletions

View file

@ -1385,8 +1385,10 @@ void container_replace(struct sway_container *container,
root_scratchpad_show(container);
root_scratchpad_remove_container(container);
}
container_add_sibling(container, replacement, 1);
container_detach(container);
if (container->parent || container->workspace) {
container_add_sibling(container, replacement, 1);
container_detach(container);
}
if (scratchpad) {
root_scratchpad_add_container(replacement);
}