diff --git a/Modules/Bar/Extras/TrayMenu.qml b/Modules/Bar/Extras/TrayMenu.qml index 02040364..05729c38 100644 --- a/Modules/Bar/Extras/TrayMenu.qml +++ b/Modules/Bar/Extras/TrayMenu.qml @@ -45,12 +45,18 @@ PopupWindow { implicitWidth: menuWidth // Use the content height of the Flickable for implicit height - implicitHeight: Math.min(screen ? screen.height * 0.9 : Screen.height * 0.9, flickable.contentHeight + (Style.marginS * 2)) + implicitHeight: Math.min(screen.height * 0.9, flickable.contentHeight + (Style.marginS * 2)) visible: false color: Color.transparent anchor.item: anchorItem anchor.rect.x: anchorX - anchor.rect.y: anchorY - (isSubMenu ? 0 : 4) + anchor.rect.y: { + if (isSubMenu) { + const offsetY = Settings.data.bar.position === "bottom" ? -10 : 10 + return anchorY + offsetY + } + return anchorY + Settings.data.bar.position === "bottom" ? -implicitHeight : Style.barHeight + } function showAt(item, x, y) { if (!item) { @@ -234,7 +240,7 @@ PopupWindow { } else if (barPosition === "left") { openLeft = false } else { - openLeft = false + openLeft = (root.widgetSection === "right") } // Open new submenu diff --git a/Modules/Bar/Widgets/Tray.qml b/Modules/Bar/Widgets/Tray.qml index f52423d7..1f84e1f6 100644 --- a/Modules/Bar/Widgets/Tray.qml +++ b/Modules/Bar/Widgets/Tray.qml @@ -262,6 +262,7 @@ Rectangle { onRightClicked: toggleDrawer(this) } + // Pinned items Repeater { id: repeater model: root.filteredItems @@ -327,12 +328,12 @@ Rectangle { modelData.activate() } } else if (mouse.button === Qt.MiddleButton) { - - // Close any open menu first - - // TODO RESTORE LATER - // trayMenuWindow.close() - // modelData.secondaryActivate && modelData.secondaryActivate() + // Close the menu if it was visible + if (trayMenuWindow && trayMenuWindow.visible) { + trayMenuWindow.close() + return + } + modelData.secondaryActivate && modelData.secondaryActivate() } else if (mouse.button === Qt.RightButton) { TooltipService.hideImmediately() @@ -364,7 +365,7 @@ Rectangle { } else { // For horizontal bars: center horizontally and position below menuX = (width / 2) - (trayMenu.item.width / 2) - menuY = Style.barHeight + menuY = (barPosition === "top") ? Style.barHeight : -Style.barHeight } trayMenu.item.trayItem = modelData trayMenu.item.widgetSection = root.section diff --git a/Modules/Panels/Tray/TrayDrawerPanel.qml b/Modules/Panels/Tray/TrayDrawerPanel.qml index bbe02ded..bf30a3e6 100644 --- a/Modules/Panels/Tray/TrayDrawerPanel.qml +++ b/Modules/Panels/Tray/TrayDrawerPanel.qml @@ -187,7 +187,7 @@ SmartPanel { } } else if (mouse.button === Qt.MiddleButton) { // Middle click: activate with middle button - modelData.activate(1) + modelData.secondaryActivate && modelData.secondaryActivate() } else if (mouse.button === Qt.RightButton) { // Right click: open context menu TooltipService.hideImmediately()