[gnome-shell/wip/msanchez/620106: 3/3] altTab: Close the list of thumbnails in the switcher when closing an app



commit 043f042cec32eec259f4f3505670a62788331b85
Author: Mario Sanchez Prada <mario endlessm com>
Date:   Fri Dec 1 20:40:41 2017 +0000

    altTab: Close the list of thumbnails in the switcher when closing an app
    
    This makes sure that no thumbnails list is left open and empty, since both
    the app's icon and all its thumbnails will be gone once the app is closed.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=620106

 js/ui/altTab.js |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)
---
diff --git a/js/ui/altTab.js b/js/ui/altTab.js
index 3a70c84..97bfe66 100644
--- a/js/ui/altTab.js
+++ b/js/ui/altTab.js
@@ -156,6 +156,17 @@ var AppSwitcherPopup = new Lang.Class({
                                  this._items[this._selectedIndex].cachedWindows.length);
     },
 
+    _quitApplication: function(appIndex) {
+        let appIcon = this._items[appIndex];
+        if (!appIcon)
+            return;
+
+        // Make sure the list of thumbnails is hidden before quitting the
+        // application, not to keep an empty list of windows showing up.
+        this._select(appIndex, null, false);
+        appIcon.app.request_quit();
+    },
+
     _keyPressHandler: function(keysym, action) {
         if (action == Meta.KeyBindingAction.SWITCH_GROUP) {
             if (!this._thumbnailsFocused)
@@ -176,7 +187,7 @@ var AppSwitcherPopup = new Lang.Class({
             else if (keysym == Clutter.Up)
                 this._select(this._selectedIndex, null, true);
             else if (keysym == Clutter.q)
-                this._items[this._selectedIndex].app.request_quit();
+                this._quitApplication(this._selectedIndex);
             else
                 return Clutter.EVENT_PROPAGATE;
         } else {
@@ -187,7 +198,7 @@ var AppSwitcherPopup = new Lang.Class({
             else if (keysym == Clutter.Down)
                 this._select(this._selectedIndex, 0);
             else if (keysym == Clutter.q)
-                this._items[this._selectedIndex].app.request_quit();
+                this._quitApplication(this._selectedIndex);
             else
                 return Clutter.EVENT_PROPAGATE;
         }


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