From 1ac39b72b88110681203701728e18468b24151c3 Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Fri, 26 Sep 2025 15:24:09 -0400 Subject: [PATCH 1/3] Fix initial intellihide chrome not set on g-s 49 gh-2388 --- src/intellihide.js | 3 +++ src/panel.js | 2 ++ src/panelManager.js | 3 +++ 3 files changed, 8 insertions(+) diff --git a/src/intellihide.js b/src/intellihide.js index a0e3983..52003fd 100644 --- a/src/intellihide.js +++ b/src/intellihide.js @@ -73,6 +73,9 @@ export const Intellihide = class { ) this.enabled = false + } + + init() { this._changeEnabledStatus() } diff --git a/src/panel.js b/src/panel.js index 2225921..1a72d3d 100644 --- a/src/panel.js +++ b/src/panel.js @@ -730,6 +730,8 @@ export const Panel = GObject.registerClass( this.taskbar.resetAppIcons(true) this.dynamicTransparency.updateExternalStyle() + if (this.intellihide?.enabled) this.intellihide.reset() + if (this.geom.vertical) { this.showAppsIconWrapper.realShowAppsIcon.toggleButton.set_width( this.geom.innerSize, diff --git a/src/panelManager.js b/src/panelManager.js index 15caccb..5fce29c 100755 --- a/src/panelManager.js +++ b/src/panelManager.js @@ -695,6 +695,9 @@ export const PanelManager = class { affectsStruts: true, }) + // intellihide changes the chrome when enabled, so init after setting initial chrome params + panel.intellihide.init() + this._findPanelMenuButtons(panelBox).forEach((pmb) => this._adjustPanelMenuButton(pmb, monitor, panel.geom.position), ) From c671d9e78b77b245baace97752516530bc88d623 Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Fri, 26 Sep 2025 22:11:25 -0400 Subject: [PATCH 2/3] Workaround preview menu reactivity on g-s 49 gh-2389 --- src/windowPreview.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/windowPreview.js b/src/windowPreview.js index d002083..fbe69c0 100644 --- a/src/windowPreview.js +++ b/src/windowPreview.js @@ -313,7 +313,6 @@ export const PreviewMenu = GObject.registerClass( _setReactive(reactive) { this._box.get_children().forEach((c) => (c.reactive = reactive)) - this.menu.reactive = reactive } _setOpenedState(opened) { From 9f49f74c3b992b05102f0c8d9bef4b511c69ebad Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Sat, 27 Sep 2025 23:13:30 -0400 Subject: [PATCH 3/3] Workaround preview menu closing on context menu sync_hover not working on g-s 49 https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8684 --- src/windowPreview.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/windowPreview.js b/src/windowPreview.js index fbe69c0..440b4d3 100644 --- a/src/windowPreview.js +++ b/src/windowPreview.js @@ -418,7 +418,7 @@ export const PreviewMenu = GObject.registerClass( _onHoverChanged() { this._endOpenCloseTimeouts() - if (this.currentAppIcon && !this.menu.hover) { + if (this.currentAppIcon && !this.menu.hover && !this.hasGrab) { this._addCloseTimeout() this._endPeek() } @@ -1131,6 +1131,8 @@ export const Preview = GObject.registerClass( this._previewMenu.peekInitialWorkspaceIndex, ) + this._previewMenu.hasGrab = true + Main.wm._showWindowMenu(null, this.window, Meta.WindowMenuType.WM, { x: coords[0], y: coords[1], @@ -1140,10 +1142,13 @@ export const Preview = GObject.registerClass( let menu = Main.wm._windowMenuManager._manager._menus[0] - menu.connect('open-state-changed', () => - this._previewMenu.menu.sync_hover(), - ) - this._previewMenu.menu.sync_hover() + menu.connect('open-state-changed', (menu, opened) => { + if (!opened) { + delete this._previewMenu.hasGrab + + if (!this._previewMenu.menu.hover) this._previewMenu.close() + } + }) if (this.window.get_workspace() != currentWorkspace) { let menuItem = new PopupMenu.PopupMenuItem(