Skip to content

Commit 99a307e

Browse files
committed
dankbar: hot fix color moda & systm tray item positions
1 parent 5ddea83 commit 99a307e

File tree

2 files changed

+19
-10
lines changed

2 files changed

+19
-10
lines changed

quickshell/Modules/DankBar/DankBarContent.qml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -635,7 +635,7 @@ Item {
635635
id: systemTrayComponent
636636

637637
SystemTrayBar {
638-
parentWindow: rootWindow
638+
parentWindow: barWindow
639639
parentScreen: barWindow.screen
640640
widgetThickness: barWindow.widgetThickness
641641
isAtBottom: SettingsData.dankBarPosition === SettingsData.Position.Bottom
@@ -981,7 +981,7 @@ Item {
981981
section: topBarContent.getWidgetSection(parent) || "right"
982982
parentScreen: barWindow.screen
983983
onColorPickerRequested: {
984-
rootWindow.colorPickerRequested()
984+
barWindow.colorPickerRequested()
985985
}
986986
}
987987
}

quickshell/Modules/DankBar/Widgets/SystemTrayBar.qml

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -530,6 +530,7 @@ Item {
530530

531531
Item {
532532
id: menuContainer
533+
objectName: "overflowMenuContainer"
533534

534535
readonly property real rawWidth: {
535536
const itemCount = root.hiddenBarItems.length
@@ -724,8 +725,7 @@ Item {
724725

725726
if (!trayItem.hasMenu) return
726727

727-
root.menuOpen = false
728-
root.showForTrayItem(trayItem, parent, parentScreen, root.isAtBottom, root.isVertical, root.axis)
728+
root.showForTrayItem(trayItem, menuContainer, parentScreen, root.isAtBottom, root.isVertical, root.axis)
729729
}
730730
}
731731
}
@@ -911,10 +911,10 @@ Item {
911911

912912
onVisibleChanged: {
913913
if (visible) {
914+
updatePosition()
914915
root.menuOpen = false
915916
PopoutManager.closeAllPopouts()
916917
ModalManager.closeAllModalsExcept(null)
917-
updatePosition()
918918
}
919919
}
920920

@@ -954,11 +954,20 @@ Item {
954954

955955
function updatePosition() {
956956
const targetItem = (typeof menuRoot !== "undefined" && menuRoot.anchorItem) ? menuRoot.anchorItem : root
957-
const globalPos = targetItem.mapToGlobal(0, 0)
958-
const screenX = screen.x || 0
959-
const screenY = screen.y || 0
960-
const relativeX = globalPos.x - screenX
961-
const relativeY = globalPos.y - screenY
957+
958+
const isFromOverflowMenu = targetItem.objectName === "overflowMenuContainer"
959+
960+
let relativeX, relativeY
961+
if (isFromOverflowMenu) {
962+
relativeX = targetItem.x
963+
relativeY = targetItem.y
964+
} else {
965+
const globalPos = targetItem.mapToGlobal(0, 0)
966+
const screenX = screen.x || 0
967+
const screenY = screen.y || 0
968+
relativeX = globalPos.x - screenX
969+
relativeY = globalPos.y - screenY
970+
}
962971

963972
const widgetThickness = Math.max(20, 26 + SettingsData.dankBarInnerPadding * 0.6)
964973
const effectiveBarThickness = Math.max(widgetThickness + SettingsData.dankBarInnerPadding + 4, Theme.barHeight - 4 - (8 - SettingsData.dankBarInnerPadding))

0 commit comments

Comments
 (0)