Merge pull request #2520 from RedSoxFan/destroy-empty-ws-on-evac

Destroy empty workspaces in output_evacuate
This commit is contained in:
Drew DeVault 2018-08-27 12:32:29 -04:00 committed by GitHub
commit 9d9de97c4c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -128,14 +128,19 @@ static void output_evacuate(struct sway_container *output) {
while (output->children->length) { while (output->children->length) {
struct sway_container *workspace = output->children->items[0]; struct sway_container *workspace = output->children->items[0];
container_remove_child(workspace);
if (workspace_is_empty(workspace)) {
workspace_begin_destroy(workspace);
continue;
}
struct sway_container *new_output = struct sway_container *new_output =
workspace_output_get_highest_available(workspace, output); workspace_output_get_highest_available(workspace, output);
if (!new_output) { if (!new_output) {
new_output = fallback_output; new_output = fallback_output;
} }
container_remove_child(workspace);
if (new_output) { if (new_output) {
workspace_output_add_priority(workspace, new_output); workspace_output_add_priority(workspace, new_output);
container_add_child(new_output, workspace); container_add_child(new_output, workspace);