output_evacuate: call workspace_consider_destroy

This calls `workspace_consider_destroy` on the workspace that was
visible on an output that a workspace was just evacuated to. This
prevents having hidden empty workspaces.
This commit is contained in:
Brian Ashworth 2019-02-20 14:08:20 -05:00 committed by Drew DeVault
parent da829b11c6
commit 2bbc6c35b0

View File

@ -189,10 +189,19 @@ static void output_evacuate(struct sway_output *output) {
continue; continue;
} }
struct sway_workspace *new_output_ws =
output_get_active_workspace(new_output);
workspace_output_add_priority(workspace, new_output); workspace_output_add_priority(workspace, new_output);
output_add_workspace(new_output, workspace); output_add_workspace(new_output, workspace);
output_sort_workspaces(new_output); output_sort_workspaces(new_output);
ipc_event_workspace(NULL, workspace, "move"); ipc_event_workspace(NULL, workspace, "move");
// If there is an old workspace (the noop output may not have one),
// check to see if it is empty and should be destroyed.
if (new_output_ws) {
workspace_consider_destroy(new_output_ws);
}
} }
} }