[gnome-shell] overviewControls: Adjust heuristic for hiding workspace switcher



commit 50f0fc4e23fe62ae807f9066afae888502435ce8
Author: Florian Müllner <fmuellner gnome org>
Date:   Sat Oct 22 16:48:01 2011 +0200

    overviewControls: Adjust heuristic for hiding workspace switcher
    
    The workspace switcher should be expanded when workspaces are in use.
    Our current implementation assumes that workspaces are used when there
    are windows on at least two workspaces. However workspaces are already
    used when moving from a non-empty workspace to an empty one (presumably
    with the intention to launch something on that workspace), so tweak the
    heuristic accordingly.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=662457

 js/ui/overviewControls.js |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)
---
diff --git a/js/ui/overviewControls.js b/js/ui/overviewControls.js
index ade0f19..b396ff0 100644
--- a/js/ui/overviewControls.js
+++ b/js/ui/overviewControls.js
@@ -259,13 +259,18 @@ const ThumbnailsSlider = new Lang.Class({
 
         Main.layoutManager.connect('monitors-changed', Lang.bind(this, this._updateSlide));
         this.actor.connect('notify::hover', Lang.bind(this, this._updateSlide));
+        global.window_manager.connect('switch-workspace', Lang.bind(this, this._updateSlide));
         this._thumbnailsBox.actor.bind_property('visible', this.actor, 'visible', 
GObject.BindingFlags.SYNC_CREATE);
     },
 
     _getAlwaysZoomOut: function() {
         // Always show the pager when hover, during a drag, or if workspaces are
-        // actually used, e.g. there are windows on more than one
-        let alwaysZoomOut = this.actor.hover || this._inDrag || !Meta.prefs_get_dynamic_workspaces() || 
global.screen.n_workspaces > 2;
+        // actually used, e.g. there are windows on any non-active workspace
+        let alwaysZoomOut = this.actor.hover ||
+                            this._inDrag ||
+                            !Meta.prefs_get_dynamic_workspaces() ||
+                            global.screen.n_workspaces > 2 ||
+                            global.screen.get_active_workspace_index() != 0;
 
         if (!alwaysZoomOut) {
             let monitors = Main.layoutManager.monitors;


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