aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Dwyer <ryandwyer1@gmail.com>2018-05-25 09:10:35 +1000
committerRyan Dwyer <ryandwyer1@gmail.com>2018-06-01 23:14:58 +1000
commit34f35f0badc767d9b0cbaf2fd429af1d30592d08 (patch)
tree1cc3a747d8e07cb55fa2cc95d26e2b33c792d89f
parent1f2e399ade77070a2d0b82856ad9a3eef96b8676 (diff)
Use L_FLOATING instead of reapable boolean
-rw-r--r--include/sway/tree/container.h5
-rw-r--r--sway/desktop/output.c2
-rw-r--r--sway/ipc-json.c2
-rw-r--r--sway/tree/container.c10
-rw-r--r--sway/tree/workspace.c2
5 files changed, 14 insertions, 7 deletions
diff --git a/include/sway/tree/container.h b/include/sway/tree/container.h
index b802e1d1..906088f0 100644
--- a/include/sway/tree/container.h
+++ b/include/sway/tree/container.h
@@ -40,6 +40,7 @@ enum sway_container_layout {
L_VERT,
L_STACKED,
L_TABBED,
+ L_FLOATING,
};
enum sway_container_border {
@@ -75,10 +76,6 @@ struct sway_container {
enum sway_container_layout layout;
enum sway_container_layout prev_layout;
- // Allow the container to be automatically removed if it's empty. True by
- // default, false for the magic floating container that each workspace has.
- bool reapable;
-
// Saves us from searching the list of children/floating in the parent
bool is_floating;
bool is_sticky;
diff --git a/sway/desktop/output.c b/sway/desktop/output.c
index 1d21e80f..e91be4d4 100644
--- a/sway/desktop/output.c
+++ b/sway/desktop/output.c
@@ -754,6 +754,8 @@ static void render_container(struct sway_output *output,
case L_TABBED:
render_container_tabbed(output, damage, con, parent_focused);
break;
+ case L_FLOATING:
+ sway_assert(false, "Didn't expect to see floating here");
}
}
diff --git a/sway/ipc-json.c b/sway/ipc-json.c
index 4d7024a8..6d185449 100644
--- a/sway/ipc-json.c
+++ b/sway/ipc-json.c
@@ -22,6 +22,8 @@ static const char *ipc_json_layout_description(enum sway_container_layout l) {
return "tabbed";
case L_STACKED:
return "stacked";
+ case L_FLOATING:
+ return "floating";
case L_NONE:
break;
}
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);