diff options
author | Brian Ashworth <bosrsf04@gmail.com> | 2018-08-27 00:18:20 -0400 |
---|---|---|
committer | Brian Ashworth <bosrsf04@gmail.com> | 2018-08-27 00:18:20 -0400 |
commit | 148b113b8d0df71fa20f6a269118624f7d29fb49 (patch) | |
tree | 631c5a25d2dde9e721716fae6e2d8f711ce6cc5b | |
parent | Merge pull request #2518 from ianyfan/ipc (diff) | |
download | sway-148b113b8d0df71fa20f6a269118624f7d29fb49.tar.gz sway-148b113b8d0df71fa20f6a269118624f7d29fb49.tar.zst sway-148b113b8d0df71fa20f6a269118624f7d29fb49.zip |
Destroy empty workspaces in output_evacuate
-rw-r--r-- | sway/tree/output.c | 9 |
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); |