From 62ccff15583fa9ad3f2d6e8ddcda154b8a3ade08 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: (cherry picked from commit 981e8e42e20338b5488fefddf291970caf525bfc) --- 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 cc9c87ab..7554f7f8 100644 --- a/extensions/window-list/extension.js +++ b/extensions/window-list/extension.js @@ -765,10 +765,11 @@ class WindowList extends St.Widget { this._menuManager = new PopupMenu.PopupMenuManager(this); this._menuManager.addMenu(this._workspaceIndicator.menu); - 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'); @@ -805,10 +806,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);