commit 0d26848a1d1d397e77acab3e513bb4a034e58530
Author: Joost Verdoorn <jpverdoorn@gmail.com>
Date:   Fri Mar 9 01:28:16 2012 +0100

    Fix for bug 651092 - Avoid two-step animation when going to the overview with mouse over workspace selector

diff --git a/js/ui/overview.js b/js/ui/overview.js
index 7858c34..b022369 100644
--- a/js/ui/overview.js
+++ b/js/ui/overview.js
@@ -620,6 +620,18 @@ const Overview = new Lang.Class({
         this._coverPane.raise_top();
         this._coverPane.show();
         this.emit('showing');
+        
+        let [mouse_x, mouse_y, mouse_mods] = global.get_pointer();         
+        let [ws_x, ws_y] = this._workspacesDisplay._controls.get_transformed_position();
+        
+        let [vs_x, vs_y] = this._viewSelector.actor.get_transformed_position();
+        let [vs_w, vs_h] = this._viewSelector.actor.get_transformed_size();
+        
+        let ws_bottom = vs_y + vs_h;
+        
+        if(mouse_x > ws_x && mouse_y > ws_y && mouse_y < ws_bottom) {
+            this._workspacesDisplay._skipHover = true;
+        }   
     },
 
     // showTemporarily:
diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js
index eed675e..f680feb 100644
--- a/js/ui/workspacesView.js
+++ b/js/ui/workspacesView.js
@@ -996,7 +996,11 @@ const WorkspacesDisplay = new Lang.Class({
     },
 
     _onControlsHoverChanged: function() {
-        this._updateZoom();
+        if(!this._controls.hover)
+            this._skipHover = false;
+            
+        if(!this._skipHover)
+            this._updateZoom();
     },
 
     _dragBegin: function() {
