From e054dd7813db5c28bc808ec47c618ba8b62432e2 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Wed, 16 Feb 2011 21:07:45 +0100 Subject: [PATCH] autoWorkspaces: Merge empty workspaces with the always empty one When closing a workspace due to the last window on that workspace closing, switch to the overview and show the always empty workspace rather then just going to the adjacent workspace. Based on a patch from Adel Gadllah . https://bugzilla.gnome.org/show_bug.cgi?id=642188 --- js/ui/main.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/js/ui/main.js b/js/ui/main.js index fc8acbd61..a57ba2433 100644 --- a/js/ui/main.js +++ b/js/ui/main.js @@ -262,12 +262,28 @@ function _checkWorkspaces() { emptyWorkspaces.push(false); } + let activeWorkspaceIndex = global.screen.get_active_workspace_index(); + let currentWorkspaceEmpty = emptyWorkspaces[activeWorkspaceIndex]; + + if (currentWorkspaceEmpty) { + // "Merge" the empty workspace we are removing with the one at the end + wm.blockAnimations(); + } + // Delete other empty workspaces; do it from the end to avoid index changes for (i = emptyWorkspaces.length - 2; i >= 0; i--) { if (emptyWorkspaces[i]) global.screen.remove_workspace(_workspaces[i], global.get_current_time()); } + if (currentWorkspaceEmpty) { + global.screen.get_workspace_by_index(global.screen.n_workspaces - 1).activate(global.get_current_time()); + wm.unblockAnimations(); + + if (!overview.visible) + overview.show(); + } + _checkWorkspacesId = 0; return false; }