window-list: Untrack chrome while in overview

The window list is set up to track the monitor's fullscreen state.
Monitors are never considered in fullscreen while showing the overview,
so if shell's layout manager updates the fullscreen visibility after
we hid the bottom bar, it ends up being visible in the overview.

To avoid this, untrack the actor while the overview is visible.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/509
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/364>
This commit is contained in:
Florian Müllner
2024-12-03 12:11:55 +01:00
parent 4a841dfd49
commit 981e8e42e2

View File

@@ -903,10 +903,11 @@ class WindowList extends St.Widget {
() => this._onWorkspaceMenuSet(), this);
this._onWorkspaceMenuSet();
Main.layoutManager.addChrome(this, {
const chromeOptions = {
affectsStruts: true,
trackFullscreen: true,
});
};
Main.layoutManager.addChrome(this, chromeOptions);
Main.uiGroup.set_child_above_sibling(this, Main.layoutManager.panelBox);
Main.ctrlAltTabManager.addGroup(this, _('Window List'), 'start-here-symbolic');
@@ -943,10 +944,12 @@ class WindowList extends St.Widget {
Main.overview.connectObject(
'showing', () => {
Main.layoutManager.untrackChrome(this);
this.hide();
this._updateKeyboardAnchor();
},
'hidden', () => {
Main.layoutManager.trackChrome(this);
this.visible = !this._monitor.inFullscreen;
this._updateKeyboardAnchor();
}, this);