From d8b7ac904436d6be3c1d5b4df990f381cb8ba470 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Sat, 16 Feb 2013 12:55:59 -0500 Subject: [PATCH] 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 file changed, 10 insertions(+), 2 deletions(-) diff --git a/js/ui/viewSelector.js b/js/ui/viewSelector.js index 9a06c5c76..a32ee7f8c 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) {