From 981e8e42e20338b5488fefddf291970caf525bfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 3 Dec 2024 12:11:55 +0100 Subject: [PATCH] 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: --- extensions/window-list/extension.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/extensions/window-list/extension.js b/extensions/window-list/extension.js index 2c8f4ad4..83342d1d 100644 --- a/extensions/window-list/extension.js +++ b/extensions/window-list/extension.js @@ -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);