From 99a307e0ada9c2748753083bcd44124621407cdf Mon Sep 17 00:00:00 2001 From: bbedward Date: Tue, 18 Nov 2025 22:13:06 -0500 Subject: [PATCH] dankbar: hot fix color moda & systm tray item positions --- quickshell/Modules/DankBar/DankBarContent.qml | 4 +-- .../Modules/DankBar/Widgets/SystemTrayBar.qml | 25 +++++++++++++------ 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/quickshell/Modules/DankBar/DankBarContent.qml b/quickshell/Modules/DankBar/DankBarContent.qml index d98c9e54..5f0b4e55 100644 --- a/quickshell/Modules/DankBar/DankBarContent.qml +++ b/quickshell/Modules/DankBar/DankBarContent.qml @@ -635,7 +635,7 @@ Item { id: systemTrayComponent SystemTrayBar { - parentWindow: rootWindow + parentWindow: barWindow parentScreen: barWindow.screen widgetThickness: barWindow.widgetThickness isAtBottom: SettingsData.dankBarPosition === SettingsData.Position.Bottom @@ -981,7 +981,7 @@ Item { section: topBarContent.getWidgetSection(parent) || "right" parentScreen: barWindow.screen onColorPickerRequested: { - rootWindow.colorPickerRequested() + barWindow.colorPickerRequested() } } } diff --git a/quickshell/Modules/DankBar/Widgets/SystemTrayBar.qml b/quickshell/Modules/DankBar/Widgets/SystemTrayBar.qml index c5377c3d..2443debd 100644 --- a/quickshell/Modules/DankBar/Widgets/SystemTrayBar.qml +++ b/quickshell/Modules/DankBar/Widgets/SystemTrayBar.qml @@ -530,6 +530,7 @@ Item { Item { id: menuContainer + objectName: "overflowMenuContainer" readonly property real rawWidth: { const itemCount = root.hiddenBarItems.length @@ -724,8 +725,7 @@ Item { if (!trayItem.hasMenu) return - root.menuOpen = false - root.showForTrayItem(trayItem, parent, parentScreen, root.isAtBottom, root.isVertical, root.axis) + root.showForTrayItem(trayItem, menuContainer, parentScreen, root.isAtBottom, root.isVertical, root.axis) } } } @@ -911,10 +911,10 @@ Item { onVisibleChanged: { if (visible) { + updatePosition() root.menuOpen = false PopoutManager.closeAllPopouts() ModalManager.closeAllModalsExcept(null) - updatePosition() } } @@ -954,11 +954,20 @@ Item { function updatePosition() { const targetItem = (typeof menuRoot !== "undefined" && menuRoot.anchorItem) ? menuRoot.anchorItem : root - const globalPos = targetItem.mapToGlobal(0, 0) - const screenX = screen.x || 0 - const screenY = screen.y || 0 - const relativeX = globalPos.x - screenX - const relativeY = globalPos.y - screenY + + const isFromOverflowMenu = targetItem.objectName === "overflowMenuContainer" + + let relativeX, relativeY + if (isFromOverflowMenu) { + relativeX = targetItem.x + relativeY = targetItem.y + } else { + const globalPos = targetItem.mapToGlobal(0, 0) + const screenX = screen.x || 0 + const screenY = screen.y || 0 + relativeX = globalPos.x - screenX + relativeY = globalPos.y - screenY + } const widgetThickness = Math.max(20, 26 + SettingsData.dankBarInnerPadding * 0.6) const effectiveBarThickness = Math.max(widgetThickness + SettingsData.dankBarInnerPadding + 4, Theme.barHeight - 4 - (8 - SettingsData.dankBarInnerPadding))