appMenu: Only show Open Windows, if there are at least 2 windows

It doesn't make sense to show the 'Open Windows' in the app menu,
if the app only has 1 open window to switch between. Hide the
window section in that case.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4199.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1827>
This commit is contained in:
Leleat 2021-04-29 01:09:50 +02:00
parent 4bf2adb4b9
commit fd0da9606f

View File

@ -30,7 +30,8 @@ class AppMenu extends PopupMenu.PopupMenu {
this._windowsChangedId = 0;
/* Translators: This is the heading of a list of open windows */
this.addMenuItem(new PopupMenu.PopupSeparatorMenuItem(_("Open Windows")));
this._openWindowsHeader = new PopupMenu.PopupSeparatorMenuItem(_('Open Windows'));
this.addMenuItem(this._openWindowsHeader);
this._windowSection = new PopupMenu.PopupMenuSection();
this.addMenuItem(this._windowSection);
@ -118,11 +119,17 @@ class AppMenu extends PopupMenu.PopupMenu {
_updateWindowsSection() {
this._windowSection.removeAll();
this._openWindowsHeader.hide();
if (!this._app)
return;
let windows = this._app.get_windows();
if (windows.length < 2)
return;
this._openWindowsHeader.show();
windows.forEach(window => {
let title = window.title || this._app.get_name();
let item = this._windowSection.addAction(title, event => {