appMenu: Allow showing the window section for all windows
Since commit fd0da9606f
, we only show the "Open Windows" section
if there are at least two windows. That's another subtle difference
with the overview context menus, but while limiting the section to
a minimum of two windows makes sense where the menu always represents
a running app, it is useful to show the section even for single windows
in the dash/app grid.
Account for both uses cases by adding a corresponding option to the
constructor.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1948>
This commit is contained in:
parent
8b1e1834f0
commit
991d9597e0
@ -9,8 +9,10 @@ var AppMenu = class AppMenu extends PopupMenu.PopupMenu {
|
|||||||
/**
|
/**
|
||||||
* @param {Clutter.Actor} sourceActor - actor the menu is attached to
|
* @param {Clutter.Actor} sourceActor - actor the menu is attached to
|
||||||
* @param {St.Side} side - arrow side
|
* @param {St.Side} side - arrow side
|
||||||
|
* @param {object} params - options
|
||||||
|
* @param {bool} params.showSingleWindow - show window section for a single window
|
||||||
*/
|
*/
|
||||||
constructor(sourceActor, side = St.Side.TOP) {
|
constructor(sourceActor, side = St.Side.TOP, params = {}) {
|
||||||
if (Clutter.get_default_text_direction() === Clutter.TextDirection.RTL) {
|
if (Clutter.get_default_text_direction() === Clutter.TextDirection.RTL) {
|
||||||
if (side === St.Side.LEFT)
|
if (side === St.Side.LEFT)
|
||||||
side = St.Side.RIGHT;
|
side = St.Side.RIGHT;
|
||||||
@ -22,8 +24,13 @@ var AppMenu = class AppMenu extends PopupMenu.PopupMenu {
|
|||||||
|
|
||||||
this.actor.add_style_class_name('app-menu');
|
this.actor.add_style_class_name('app-menu');
|
||||||
|
|
||||||
|
const {
|
||||||
|
showSingleWindows = false,
|
||||||
|
} = params;
|
||||||
|
|
||||||
this._app = null;
|
this._app = null;
|
||||||
this._appSystem = Shell.AppSystem.get_default();
|
this._appSystem = Shell.AppSystem.get_default();
|
||||||
|
this._showSingleWindows = showSingleWindows;
|
||||||
|
|
||||||
this._windowsChangedId = 0;
|
this._windowsChangedId = 0;
|
||||||
this._updateWindowsLaterId = 0;
|
this._updateWindowsLaterId = 0;
|
||||||
@ -166,8 +173,9 @@ var AppMenu = class AppMenu extends PopupMenu.PopupMenu {
|
|||||||
if (!this._app)
|
if (!this._app)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
const minWindows = this._showSingleWindows ? 1 : 2;
|
||||||
const windows = this._app.get_windows().filter(w => !w.skip_taskbar);
|
const windows = this._app.get_windows().filter(w => !w.skip_taskbar);
|
||||||
if (windows.length < 2)
|
if (windows.length < minWindows)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
this._openWindowsHeader.show();
|
this._openWindowsHeader.show();
|
||||||
|
Loading…
Reference in New Issue
Block a user