aboutsummaryrefslogtreecommitdiffstats
path: root/sway/tree/arrange.c
diff options
context:
space:
mode:
authorLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-08-19 15:07:07 +1000
committerLibravatar Ryan Dwyer <ryandwyer1@gmail.com>2018-08-19 16:18:33 +1000
commit2b5a404ac920339a2b9ce32d4718272dee4668b9 (patch)
tree681f45a530a1f8d5966161291c3cb482e52edb6e /sway/tree/arrange.c
parentMerge pull request #2453 from ianyfan/commands (diff)
downloadsway-2b5a404ac920339a2b9ce32d4718272dee4668b9.tar.gz
sway-2b5a404ac920339a2b9ce32d4718272dee4668b9.tar.zst
sway-2b5a404ac920339a2b9ce32d4718272dee4668b9.zip
Replace hacky L_FLOATING container with a list
Workspaces previously had a magical `workspace->floating` container, which had a layout of L_FLOATING and whose children were actual floating views. This allowed some conveniences, but was a hacky solution because the container has to be exempt from focus, coordinate transactions with the workspace, and omit emitting IPC events (which we didn't do). This commit changes it to be a list directly in the sway_workspace. The L_FLOATING layout is no longer used so this has been removed as well. * Fixes incorrect check in the swap command (it checked if the containers had the L_FLOATING layout, but this layout applied to the magical container). * Introduces workspace_add_floating
Diffstat (limited to 'sway/tree/arrange.c')
-rw-r--r--sway/tree/arrange.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/sway/tree/arrange.c b/sway/tree/arrange.c
index 494a8461..cf4a5d9a 100644
--- a/sway/tree/arrange.c
+++ b/sway/tree/arrange.c
@@ -144,9 +144,9 @@ static void apply_tabbed_or_stacked_layout(struct sway_container *parent) {
144 144
145static void arrange_children_of(struct sway_container *parent); 145static void arrange_children_of(struct sway_container *parent);
146 146
147static void arrange_floating(struct sway_container *floating) { 147static void arrange_floating(list_t *floating) {
148 for (int i = 0; i < floating->children->length; ++i) { 148 for (int i = 0; i < floating->length; ++i) {
149 struct sway_container *floater = floating->children->items[i]; 149 struct sway_container *floater = floating->items[i];
150 if (floater->type == C_VIEW) { 150 if (floater->type == C_VIEW) {
151 view_autoconfigure(floater->sway_view); 151 view_autoconfigure(floater->sway_view);
152 } else { 152 } else {
@@ -154,7 +154,6 @@ static void arrange_floating(struct sway_container *floating) {
154 } 154 }
155 container_set_dirty(floater); 155 container_set_dirty(floater);
156 } 156 }
157 container_set_dirty(floating);
158} 157}
159 158
160static void arrange_children_of(struct sway_container *parent) { 159static void arrange_children_of(struct sway_container *parent) {
@@ -179,9 +178,6 @@ static void arrange_children_of(struct sway_container *parent) {
179 case L_NONE: 178 case L_NONE:
180 apply_horiz_layout(parent); 179 apply_horiz_layout(parent);
181 break; 180 break;
182 case L_FLOATING:
183 arrange_floating(parent);
184 break;
185 } 181 }
186 182
187 // Recurse into child containers 183 // Recurse into child containers