diff options
-rw-r--r-- | include/sway/container.h | 2 | ||||
-rw-r--r-- | sway/commands/layout.c | 2 | ||||
-rw-r--r-- | sway/container.c | 3 |
3 files changed, 5 insertions, 2 deletions
diff --git a/include/sway/container.h b/include/sway/container.h index 90825a49..2bedd136 100644 --- a/include/sway/container.h +++ b/include/sway/container.h | |||
@@ -324,7 +324,7 @@ void close_views(swayc_t *container); | |||
324 | 324 | ||
325 | /** | 325 | /** |
326 | * Assign layout to a container. Needed due to workspace container specifics. | 326 | * Assign layout to a container. Needed due to workspace container specifics. |
327 | * Workspace always needs L_HORIZ layout. | 327 | * Workspace should always have either L_VERT or L_HORIZ layout. |
328 | */ | 328 | */ |
329 | swayc_t *swayc_change_layout(swayc_t *container, enum swayc_layouts layout); | 329 | swayc_t *swayc_change_layout(swayc_t *container, enum swayc_layouts layout); |
330 | 330 | ||
diff --git a/sway/commands/layout.c b/sway/commands/layout.c index bef06cb2..08336150 100644 --- a/sway/commands/layout.c +++ b/sway/commands/layout.c | |||
@@ -49,7 +49,7 @@ struct cmd_results *cmd_layout(int argc, char **argv) { | |||
49 | } else if (strcasecmp(argv[0], "splitv") == 0) { | 49 | } else if (strcasecmp(argv[0], "splitv") == 0) { |
50 | swayc_change_layout(parent, L_VERT); | 50 | swayc_change_layout(parent, L_VERT); |
51 | } else if (strcasecmp(argv[0], "toggle") == 0 && argc == 2 && strcasecmp(argv[1], "split") == 0) { | 51 | } else if (strcasecmp(argv[0], "toggle") == 0 && argc == 2 && strcasecmp(argv[1], "split") == 0) { |
52 | if (parent->layout == L_HORIZ) { | 52 | if (parent->layout == L_HORIZ && (parent->workspace_layout == L_NONE || parent->workspace_layout == L_HORIZ)) { |
53 | swayc_change_layout(parent, L_VERT); | 53 | swayc_change_layout(parent, L_VERT); |
54 | } else { | 54 | } else { |
55 | swayc_change_layout(parent, L_HORIZ); | 55 | swayc_change_layout(parent, L_HORIZ); |
diff --git a/sway/container.c b/sway/container.c index c588f3db..e5284200 100644 --- a/sway/container.c +++ b/sway/container.c | |||
@@ -950,6 +950,9 @@ swayc_t *swayc_tabbed_stacked_parent(swayc_t *con) { | |||
950 | swayc_t *swayc_change_layout(swayc_t *container, enum swayc_layouts layout) { | 950 | swayc_t *swayc_change_layout(swayc_t *container, enum swayc_layouts layout) { |
951 | if (container->type == C_WORKSPACE) { | 951 | if (container->type == C_WORKSPACE) { |
952 | container->workspace_layout = layout; | 952 | container->workspace_layout = layout; |
953 | if (layout == L_HORIZ || layout == L_VERT) { | ||
954 | container->layout = layout; | ||
955 | } | ||
953 | } else { | 956 | } else { |
954 | container->layout = layout; | 957 | container->layout = layout; |
955 | } | 958 | } |