[gnome-shell] appMenu: Update "new-window" item on state changes



commit e3c06e3c77dbc5a52637bdb0162a123c30cce560
Author: Florian Müllner <fmuellner gnome org>
Date:   Thu Aug 12 03:49:37 2021 +0200

    appMenu: Update "new-window" item on state changes
    
    Stopped apps can *always* open a new window, so before we start
    using the menu for non-running apps, make sure to hide the menu
    item as necessary.
    
    Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1948>

 js/ui/appMenu.js | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)
---
diff --git a/js/ui/appMenu.js b/js/ui/appMenu.js
index 7f25566e02..425faebb52 100644
--- a/js/ui/appMenu.js
+++ b/js/ui/appMenu.js
@@ -93,12 +93,19 @@ var AppMenu = class AppMenu extends PopupMenu.PopupMenu {
             return;
 
         this._updateQuitItem();
+        this._updateNewWindowItem();
     }
 
     _updateQuitItem() {
         this._quitItem.visible = this._app?.state === Shell.AppState.RUNNING;
     }
 
+    _updateNewWindowItem() {
+        const actions = this._app?.appInfo?.list_actions() ?? [];
+        this._newWindowItem.visible =
+            this._app?.can_open_new_window() && !actions.includes('new-window');
+    }
+
     _updateDetailsVisibility() {
         const sw = this._appSystem.lookup_app('org.gnome.Software.desktop');
         this._detailsItem.visible = sw !== null;
@@ -164,9 +171,8 @@ var AppMenu = class AppMenu extends PopupMenu.PopupMenu {
             });
         });
 
-        this._newWindowItem.visible =
-            app && app.can_open_new_window() && !actions.includes('new-window');
         this._updateQuitItem();
+        this._updateNewWindowItem();
     }
 
     _queueUpdateWindowsSection() {


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