diff --git a/Modules/Bar/Extras/TrayMenu.qml b/Modules/Bar/Extras/TrayMenu.qml index ab11985a97..e249aa35f9 100644 --- a/Modules/Bar/Extras/TrayMenu.qml +++ b/Modules/Bar/Extras/TrayMenu.qml @@ -462,15 +462,16 @@ PopupWindow { } else { // Click on regular items triggers them modelData.triggered(); - root.hideMenu(); - - // Close the drawer if it's open - if (root.screen) { - const panel = PanelService.getPanel("trayDrawerPanel", root.screen); - if (panel && panel.visible) { - panel.close(); - } - } + const screen = root.screen; + Qt.callLater(() => { + PanelService.closeTrayMenu(screen); + if (screen) { + const panel = PanelService.getPanel("trayDrawerPanel", screen); + if (panel && panel.visible) { + panel.close(); + } + } + }); } } } @@ -541,6 +542,7 @@ PopupWindow { } else { root.addToPinned(); } + PanelService.closeTrayMenu(root.screen); } } } diff --git a/Services/UI/PanelService.qml b/Services/UI/PanelService.qml index 89993f94b4..356013b83b 100644 --- a/Services/UI/PanelService.qml +++ b/Services/UI/PanelService.qml @@ -114,6 +114,8 @@ Singleton { // Close any previously opened menu first closeContextMenu(screen); + // Force refresh when reopening the same tray item. + trayMenu.trayItem = null; trayMenu.trayItem = trayItem; trayMenu.widgetSection = widgetSection; trayMenu.widgetIndex = widgetIndex;