diff options
Diffstat (limited to 'sway')
-rw-r--r-- | sway/handlers.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sway/handlers.c b/sway/handlers.c index d3fbdc0f..69f325eb 100644 --- a/sway/handlers.c +++ b/sway/handlers.c @@ -303,6 +303,16 @@ static void handle_view_destroyed(wlc_handle handle) { if (fullscreen) { parent->fullscreen = NULL; } + + // Destroy empty workspaces + if (parent->type == C_WORKSPACE && + parent->children->length == 0 && + parent->floating->length == 0 && + swayc_active_workspace() != parent && + !parent->visible) { + parent = destroy_workspace(parent); + } + arrange_windows(parent, -1, -1); } else { // Is it unmanaged? |