[gnome-shell] viewSelector: block show apps button checked signal when resetting state



commit d8b7ac904436d6be3c1d5b4df990f381cb8ba470
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Sat Feb 16 12:55:59 2013 -0500

    viewSelector: block show apps button checked signal when resetting state
    
    When we reset the state of the checked button due to the overview
    showing and hiding, block the normal checked callback and immediately
    switch to the workspaces page, so that windows seamlessly fade in.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=693974

 js/ui/viewSelector.js |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)
---
diff --git a/js/ui/viewSelector.js b/js/ui/viewSelector.js
index 9a06c5c..a32ee7f 100644
--- a/js/ui/viewSelector.js
+++ b/js/ui/viewSelector.js
@@ -57,6 +57,7 @@ const ViewSelector = new Lang.Class({
     _init : function(searchEntry, showAppsButton) {
         this.actor = new Shell.Stack({ name: 'viewSelector' });
 
+        this._showAppsBlocked = false;
         this._showAppsButton = showAppsButton;
         this._showAppsButton.connect('notify::checked', Lang.bind(this, this._onShowAppsButtonToggled));
 
@@ -247,12 +248,19 @@ const ViewSelector = new Lang.Class({
     },
 
     _onShowAppsButtonToggled: function() {
-        this._showPage(this._showAppsButton.checked ? this._appsPage
-                                                    : this._workspacesPage);
+        if (this._showAppsBlocked)
+            return;
+
+        this._showPage(this._showAppsButton.checked ?
+                       this._appsPage : this._workspacesPage);
     },
 
     _resetShowAppsButton: function() {
+        this._showAppsBlocked = true;
         this._showAppsButton.checked = false;
+        this._showAppsBlocked = false;
+
+        this._showPage(this._workspacesPage, true);
     },
 
     _onStageKeyPress: function(actor, event) {


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