From cef16d6bc9d6852d03f71feb2ab7f05ddffd3302 Mon Sep 17 00:00:00 2001 From: bbedward Date: Fri, 20 Feb 2026 11:28:56 -0500 Subject: [PATCH] dankdash: fix widgets across different bar section fixes #1764s --- quickshell/Common/PopoutManager.qml | 2 ++ quickshell/Modules/DankBar/DankBarContent.qml | 6 +++--- quickshell/Modules/DankBar/DankBarWindow.qml | 2 +- quickshell/Widgets/DankPopout.qml | 7 +++++++ 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/quickshell/Common/PopoutManager.qml b/quickshell/Common/PopoutManager.qml index c178f775..ebf2edbb 100644 --- a/quickshell/Common/PopoutManager.qml +++ b/quickshell/Common/PopoutManager.qml @@ -142,6 +142,8 @@ Singleton { if (tabIndex !== undefined && popout.currentTabIndex !== undefined) { popout.currentTabIndex = tabIndex; } + if (popout.updateSurfacePosition) + popout.updateSurfacePosition(); currentPopoutTriggers[screenName] = triggerId; return; } diff --git a/quickshell/Modules/DankBar/DankBarContent.qml b/quickshell/Modules/DankBar/DankBarContent.qml index 4bcf481a..08f8fec5 100644 --- a/quickshell/Modules/DankBar/DankBarContent.qml +++ b/quickshell/Modules/DankBar/DankBarContent.qml @@ -811,7 +811,7 @@ Item { } else { dankDashPopoutLoader.item.triggerScreen = barWindow.screen; } - PopoutManager.requestPopout(dankDashPopoutLoader.item, 0, (effectiveBarConfig?.id ?? "default") + "-0"); + PopoutManager.requestPopout(dankDashPopoutLoader.item, 0, (effectiveBarConfig?.id ?? "default") + "-" + section + "-0"); } } } @@ -867,7 +867,7 @@ Item { } else { dankDashPopoutLoader.item.triggerScreen = barWindow.screen; } - PopoutManager.requestPopout(dankDashPopoutLoader.item, 1, (effectiveBarConfig?.id ?? "default") + "-1"); + PopoutManager.requestPopout(dankDashPopoutLoader.item, 1, (effectiveBarConfig?.id ?? "default") + "-" + section + "-1"); } } } @@ -926,7 +926,7 @@ Item { } else { dankDashPopoutLoader.item.triggerScreen = barWindow.screen; } - PopoutManager.requestPopout(dankDashPopoutLoader.item, 3, (effectiveBarConfig?.id ?? "default") + "-3"); + PopoutManager.requestPopout(dankDashPopoutLoader.item, 3, (effectiveBarConfig?.id ?? "default") + "-" + section + "-3"); } } } diff --git a/quickshell/Modules/DankBar/DankBarWindow.qml b/quickshell/Modules/DankBar/DankBarWindow.qml index c51f318c..5a94e45a 100644 --- a/quickshell/Modules/DankBar/DankBarWindow.qml +++ b/quickshell/Modules/DankBar/DankBarWindow.qml @@ -80,7 +80,7 @@ PanelWindow { dankDashPopoutLoader.item.triggerScreen = barWindow.screen; } - PopoutManager.requestPopout(dankDashPopoutLoader.item, 2, (barConfig?.id ?? "default") + "-2"); + PopoutManager.requestPopout(dankDashPopoutLoader.item, 2, (barConfig?.id ?? "default") + "-" + section + "-2"); } readonly property var dBarLayer: { diff --git a/quickshell/Widgets/DankPopout.qml b/quickshell/Widgets/DankPopout.qml index 6b86b399..0aae5cb2 100644 --- a/quickshell/Widgets/DankPopout.qml +++ b/quickshell/Widgets/DankPopout.qml @@ -109,6 +109,13 @@ Item { readonly property bool useBackgroundWindow: !CompositorService.isHyprland || CompositorService.useHyprlandFocusGrab + function updateSurfacePosition() { + if (useBackgroundWindow && shouldBeVisible) { + _surfaceMarginLeft = alignedX - shadowBuffer; + _surfaceW = alignedWidth + shadowBuffer * 2; + } + } + function open() { if (!screen) return;