[gnome-shell] autoWorkspaces: Merge empty workspaces with the always empty one



commit e054dd7813db5c28bc808ec47c618ba8b62432e2
Author: Owen W. Taylor <otaylor fishsoup net>
Date:   Wed Feb 16 21:07:45 2011 +0100

    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 <adel gadllah gmail com>.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=642188

 js/ui/main.js |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)
---
diff --git a/js/ui/main.js b/js/ui/main.js
index fc8acbd..a57ba24 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;
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]