aboutsummaryrefslogtreecommitdiff
path: root/sway/tree
diff options
context:
space:
mode:
authorTony Crisci <tony@dubstepdish.com>2018-04-03 13:23:34 -0400
committerTony Crisci <tony@dubstepdish.com>2018-04-03 13:23:34 -0400
commit9b567fc37e83ed9f0cbb028fd801a2f2609c79dc (patch)
treea1ebdea49233f10c016664159bb9e8c9738e407c /sway/tree
parent065887bb7b25c1cf7d39459c79387a24e600085f (diff)
downloadsway-9b567fc37e83ed9f0cbb028fd801a2f2609c79dc.tar.xz
clean up container_get_default_layout
Diffstat (limited to 'sway/tree')
-rw-r--r--sway/tree/container.c2
-rw-r--r--sway/tree/layout.c14
2 files changed, 13 insertions, 3 deletions
diff --git a/sway/tree/container.c b/sway/tree/container.c
index a79bc22c..64b51db6 100644
--- a/sway/tree/container.c
+++ b/sway/tree/container.c
@@ -405,7 +405,7 @@ struct sway_container *container_workspace_create(struct sway_container *output,
workspace->name = !name ? NULL : strdup(name);
workspace->prev_layout = L_NONE;
workspace->layout = container_get_default_layout(output);
- workspace->workspace_layout = container_get_default_layout(output);
+ workspace->workspace_layout = workspace->layout;
container_add_child(output, workspace);
container_sort_workspaces(output);
diff --git a/sway/tree/layout.c b/sway/tree/layout.c
index dfcdbb9c..c3cdaae0 100644
--- a/sway/tree/layout.c
+++ b/sway/tree/layout.c
@@ -168,12 +168,22 @@ void container_move(struct sway_container *container,
}
enum sway_container_layout container_get_default_layout(
- struct sway_container *output) {
+ struct sway_container *con) {
+ if (con->type != C_OUTPUT) {
+ con = container_parent(con, C_OUTPUT);
+ }
+
+ if (!sway_assert(con != NULL,
+ "container_get_default_layout must be called on an attached "
+ " container below the root container")) {
+ return 0;
+ }
+
if (config->default_layout != L_NONE) {
return config->default_layout;
} else if (config->default_orientation != L_NONE) {
return config->default_orientation;
- } else if (output->width >= output->height) {
+ } else if (con->width >= con->height) {
return L_HORIZ;
} else {
return L_VERT;