diff options
author | D.B <thejan.2009@gmail.com> | 2016-10-10 20:44:09 +0200 |
---|---|---|
committer | D.B <thejan.2009@gmail.com> | 2016-10-11 09:16:59 +0200 |
commit | 571321a1d84a1eb2867fbdc39f7f828aa2c64a01 (patch) | |
tree | ad61090d261ccec47efc36b19f2b7266a01c1bdc /sway/container.c | |
parent | 0ddc4279d1f4e6e161c36eae31fa32c950ad0c71 (diff) |
add workspace_layout, ensure ws is always L_HORIZ
Add swayc_change_layout function, which changes either layout or
workspace_layout, depending on the container type. Workspace being
always L_HORIZ makes this much more i3-compatible.
Diffstat (limited to 'sway/container.c')
-rw-r--r-- | sway/container.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/sway/container.c b/sway/container.c index 9d5e2690..c3461acb 100644 --- a/sway/container.c +++ b/sway/container.c @@ -27,6 +27,7 @@ static swayc_t *new_swayc(enum swayc_types type) { c->handle = -1; c->gaps = -1; c->layout = L_NONE; + c->workspace_layout = L_NONE; c->type = type; if (type != C_VIEW) { c->children = create_list(); @@ -209,7 +210,8 @@ swayc_t *new_workspace(swayc_t *output, const char *name) { swayc_t *workspace = new_swayc(C_WORKSPACE); workspace->prev_layout = L_NONE; - workspace->layout = default_layout(output); + workspace->layout = L_HORIZ; + workspace->workspace_layout = default_layout(output); workspace->x = output->x; workspace->y = output->y; @@ -262,7 +264,7 @@ swayc_t *new_container(swayc_t *child, enum swayc_layouts layout) { // add container to workspace chidren add_child(workspace, cont); // give them proper layouts - cont->layout = workspace->layout; + cont->layout = workspace->workspace_layout; cont->prev_layout = workspace->prev_layout; /* TODO: might break shit in move_container!!! workspace->layout = layout; */ set_focused_container_for(workspace, get_focused_view(workspace)); @@ -929,3 +931,12 @@ swayc_t *swayc_tabbed_stacked_parent(swayc_t *con) { } return NULL; } + +swayc_t *swayc_change_layout(swayc_t *container, enum swayc_layouts layout) { + if (container->type == C_WORKSPACE) { + container->workspace_layout = layout; + } else { + container->layout = layout; + } + return container; +} |