aboutsummaryrefslogtreecommitdiffstats
path: root/sway/tree/output.c
diff options
context:
space:
mode:
authorLibravatar Brian Ashworth <bosrsf04@gmail.com>2018-08-27 00:18:20 -0400
committerLibravatar Brian Ashworth <bosrsf04@gmail.com>2018-08-27 00:18:20 -0400
commit148b113b8d0df71fa20f6a269118624f7d29fb49 (patch)
tree631c5a25d2dde9e721716fae6e2d8f711ce6cc5b /sway/tree/output.c
parentMerge pull request #2518 from ianyfan/ipc (diff)
downloadsway-148b113b8d0df71fa20f6a269118624f7d29fb49.tar.gz
sway-148b113b8d0df71fa20f6a269118624f7d29fb49.tar.zst
sway-148b113b8d0df71fa20f6a269118624f7d29fb49.zip
Destroy empty workspaces in output_evacuate
Diffstat (limited to 'sway/tree/output.c')
-rw-r--r--sway/tree/output.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sway/tree/output.c b/sway/tree/output.c
index bfc9c723..6601220b 100644
--- a/sway/tree/output.c
+++ b/sway/tree/output.c
@@ -128,14 +128,19 @@ static void output_evacuate(struct sway_container *output) {
128 while (output->children->length) { 128 while (output->children->length) {
129 struct sway_container *workspace = output->children->items[0]; 129 struct sway_container *workspace = output->children->items[0];
130 130
131 container_remove_child(workspace);
132
133 if (workspace_is_empty(workspace)) {
134 workspace_begin_destroy(workspace);
135 continue;
136 }
137
131 struct sway_container *new_output = 138 struct sway_container *new_output =
132 workspace_output_get_highest_available(workspace, output); 139 workspace_output_get_highest_available(workspace, output);
133 if (!new_output) { 140 if (!new_output) {
134 new_output = fallback_output; 141 new_output = fallback_output;
135 } 142 }
136 143
137 container_remove_child(workspace);
138
139 if (new_output) { 144 if (new_output) {
140 workspace_output_add_priority(workspace, new_output); 145 workspace_output_add_priority(workspace, new_output);
141 container_add_child(new_output, workspace); 146 container_add_child(new_output, workspace);