[gnome-shell] PopupMenuManager: Close active menu when another one opens



commit c84dc6254d2d65c41408415d6d6319062e0323df
Author: Florian Müllner <fmuellner gnome org>
Date:   Fri Apr 26 17:06:22 2013 +0200

    PopupMenuManager: Close active menu when another one opens
    
    We already do this when navigating between menus via mouse or
    keynav, but miss cases where a menu is opened by other means,
    for instance via a keyboard shortcut.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=686756

 js/ui/popupMenu.js |   11 ++++-------
 1 files changed, 4 insertions(+), 7 deletions(-)
---
diff --git a/js/ui/popupMenu.js b/js/ui/popupMenu.js
index a7644d9..cd81f10 100644
--- a/js/ui/popupMenu.js
+++ b/js/ui/popupMenu.js
@@ -2049,6 +2049,8 @@ const PopupMenuManager = new Lang.Class({
 
     _onMenuOpenState: function(menu, open) {
         if (open) {
+            if (this.activeMenu)
+                this.activeMenu.close(BoxPointer.PopupAnimation.FADE);
             this._grabHelper.grab({ actor: menu.actor, modal: true, focus: menu.sourceActor,
                                     onUngrab: Lang.bind(this, this._closeMenu, menu) });
         } else {
@@ -2065,13 +2067,8 @@ const PopupMenuManager = new Lang.Class({
     },
 
     _changeMenu: function(newMenu) {
-        let oldMenu = this.activeMenu;
-        if (oldMenu) {
-            oldMenu.close(BoxPointer.PopupAnimation.FADE);
-            newMenu.open(BoxPointer.PopupAnimation.FADE);
-        } else {
-            newMenu.open(BoxPointer.PopupAnimation.FULL);
-        }
+        newMenu.open(this.activeMenu ? BoxPointer.PopupAnimation.FADE
+                                     : BoxPointer.PopupAnimation.FULL);
     },
 
     _onMenuSourceEnter: function(menu) {


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