diff --git a/quickshell/Modals/Common/DankModal.qml b/quickshell/Modals/Common/DankModal.qml index ea8bb5f2..4aa378e6 100644 --- a/quickshell/Modals/Common/DankModal.qml +++ b/quickshell/Modals/Common/DankModal.qml @@ -235,8 +235,8 @@ Item { readonly property real s: Math.min(1, modalContainer.scaleValue) blurX: modalContainer.x + modalContainer.width * (1 - s) * 0.5 + Theme.snap(modalContainer.animX, root.dpr) blurY: modalContainer.y + modalContainer.height * (1 - s) * 0.5 + Theme.snap(modalContainer.animY, root.dpr) - blurWidth: shouldBeVisible ? modalContainer.width * s : 0 - blurHeight: shouldBeVisible ? modalContainer.height * s : 0 + blurWidth: (shouldBeVisible && animatedContent.opacity > 0) ? modalContainer.width * s : 0 + blurHeight: (shouldBeVisible && animatedContent.opacity > 0) ? modalContainer.height * s : 0 blurRadius: root.cornerRadius } diff --git a/quickshell/Modals/DankLauncherV2/DankLauncherV2Modal.qml b/quickshell/Modals/DankLauncherV2/DankLauncherV2Modal.qml index 2e0ea122..859022cc 100644 --- a/quickshell/Modals/DankLauncherV2/DankLauncherV2Modal.qml +++ b/quickshell/Modals/DankLauncherV2/DankLauncherV2Modal.qml @@ -314,8 +314,8 @@ Item { readonly property real s: Math.min(1, modalContainer.scale) blurX: root.modalX + root.modalWidth * (1 - s) * 0.5 blurY: root.modalY + root.modalHeight * (1 - s) * 0.5 - blurWidth: contentVisible ? root.modalWidth * s : 0 - blurHeight: contentVisible ? root.modalHeight * s : 0 + blurWidth: (contentVisible && modalContainer.opacity > 0) ? root.modalWidth * s : 0 + blurHeight: (contentVisible && modalContainer.opacity > 0) ? root.modalHeight * s : 0 blurRadius: root.cornerRadius } diff --git a/quickshell/Modules/DankBar/DankBarWindow.qml b/quickshell/Modules/DankBar/DankBarWindow.qml index e1e3c98b..d8b0216c 100644 --- a/quickshell/Modules/DankBar/DankBarWindow.qml +++ b/quickshell/Modules/DankBar/DankBarWindow.qml @@ -150,7 +150,10 @@ PanelWindow { const region = Qt.createQmlObject(qml, barWindow, "BarBlurRegion"); if (hasBar) { - region.item = Qt.binding(() => barUnitInset); + region.x = Qt.binding(() => topBarMouseArea.x + barUnitInset.x + topBarSlide.x); + region.y = Qt.binding(() => topBarMouseArea.y + barUnitInset.y + topBarSlide.y); + region.width = Qt.binding(() => barUnitInset.width); + region.height = Qt.binding(() => barUnitInset.height); region.radius = Qt.binding(() => barBackground.rt); } @@ -184,6 +187,18 @@ PanelWindow { } } + Connections { + target: topBarSlide + function onXChanged() { + if (barWindow.blurRegion) + barWindow.blurRegion.changed(); + } + function onYChanged() { + if (barWindow.blurRegion) + barWindow.blurRegion.changed(); + } + } + Component.onCompleted: rebuild() Component.onDestruction: teardown() } diff --git a/quickshell/Widgets/DankPopout.qml b/quickshell/Widgets/DankPopout.qml index 73e3a3d5..9163a27c 100644 --- a/quickshell/Widgets/DankPopout.qml +++ b/quickshell/Widgets/DankPopout.qml @@ -404,8 +404,8 @@ Item { readonly property real s: Math.min(1, contentContainer.scaleValue) blurX: contentContainer.x + contentContainer.width * (1 - s) * 0.5 + Theme.snap(contentContainer.animX, root.dpr) blurY: contentContainer.y + contentContainer.height * (1 - s) * 0.5 + Theme.snap(contentContainer.animY, root.dpr) - blurWidth: shouldBeVisible ? contentContainer.width * s : 0 - blurHeight: shouldBeVisible ? contentContainer.height * s : 0 + blurWidth: (shouldBeVisible && contentWrapper.opacity > 0) ? contentContainer.width * s : 0 + blurHeight: (shouldBeVisible && contentWrapper.opacity > 0) ? contentContainer.height * s : 0 blurRadius: Theme.cornerRadius }