diff options
Diffstat (limited to 'sway/tree')
-rw-r--r-- | sway/tree/container.c | 10 | ||||
-rw-r--r-- | sway/tree/workspace.c | 2 |
2 files changed, 9 insertions, 3 deletions
diff --git a/sway/tree/container.c b/sway/tree/container.c index f9a0474c..17d29d92 100644 --- a/sway/tree/container.c +++ b/sway/tree/container.c @@ -123,7 +123,6 @@ struct sway_container *container_create(enum sway_container_type type) { c->layout = L_NONE; c->type = type; c->alpha = 1.0f; - c->reapable = true; if (type != C_VIEW) { c->children = create_list(); @@ -280,7 +279,8 @@ static void container_root_finish(struct sway_container *con) { } bool container_reap_empty(struct sway_container *con) { - if (!con->reapable) { + if (con->layout == L_FLOATING) { + // Don't reap the magical floating container that each workspace has return false; } switch (con->type) { @@ -618,6 +618,9 @@ struct sway_container *container_at(struct sway_container *parent, return container_at_tabbed(parent, ox, oy, surface, sx, sy); case L_STACKED: return container_at_stacked(parent, ox, oy, surface, sx, sy); + case L_FLOATING: + sway_assert(false, "Didn't expect to see floating here"); + return NULL; case L_NONE: return NULL; } @@ -842,6 +845,9 @@ static size_t get_tree_representation(struct sway_container *parent, char *buffe case L_STACKED: lenient_strcat(buffer, "S["); break; + case L_FLOATING: + strcpy(buffer, "F["); + break; case L_NONE: lenient_strcat(buffer, "D["); break; diff --git a/sway/tree/workspace.c b/sway/tree/workspace.c index 5bef409a..37d4a06a 100644 --- a/sway/tree/workspace.c +++ b/sway/tree/workspace.c @@ -67,7 +67,7 @@ struct sway_container *workspace_create(struct sway_container *output, swayws->swayc = workspace; swayws->floating = container_create(C_CONTAINER); swayws->floating->parent = swayws->swayc; - swayws->floating->reapable = false; + swayws->floating->layout = L_FLOATING; workspace->sway_workspace = swayws; container_add_child(output, workspace); |