From 571321a1d84a1eb2867fbdc39f7f828aa2c64a01 Mon Sep 17 00:00:00 2001 From: "D.B" Date: Mon, 10 Oct 2016 20:44:09 +0200 Subject: 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. --- sway/container.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'sway/container.c') 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; +} -- cgit v1.2.3-54-g00ecf