1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-05-13 07:42:46 -04:00

refactor(blur): Update blur layer sync handling w/Popout/Modals

- This results in better visuals so you will no longer get a brief flash of blur rending first upon load on certain displays
This commit is contained in:
purian23
2026-05-09 21:21:16 -04:00
parent e28b0c695e
commit 4968b80268
3 changed files with 15 additions and 12 deletions
@@ -242,10 +242,11 @@ Item {
WindowBlur { WindowBlur {
targetWindow: contentWindow targetWindow: contentWindow
readonly property real s: Math.min(1, modalContainer.scaleValue) readonly property real s: Math.min(1, modalContainer.scaleValue)
blurX: modalContainer.x + modalContainer.width * (1 - s) * 0.5 + Theme.snap(modalContainer.animX, root.dpr) readonly property real op: Math.max(0, Math.min(1, (morph.openProgress - 0.06) * 2))
blurY: modalContainer.y + modalContainer.height * (1 - s) * 0.5 + Theme.snap(modalContainer.animY, root.dpr) blurX: modalContainer.x + modalContainer.width * (1 - s * op) * 0.5 + Theme.snap(modalContainer.animX, root.dpr)
blurWidth: shouldBeVisible ? modalContainer.width * s : 0 blurY: modalContainer.y + modalContainer.height * (1 - s * op) * 0.5 + Theme.snap(modalContainer.animY, root.dpr)
blurHeight: shouldBeVisible ? modalContainer.height * s : 0 blurWidth: root.shouldBeVisible ? modalContainer.width * s * op : 0
blurHeight: root.shouldBeVisible ? modalContainer.height * s * op : 0
blurRadius: root.cornerRadius blurRadius: root.cornerRadius
} }
@@ -369,10 +369,11 @@ Item {
WindowBlur { WindowBlur {
targetWindow: launcherWindow targetWindow: launcherWindow
readonly property real s: Math.min(1, modalContainer.publishedScale) readonly property real s: Math.min(1, modalContainer.publishedScale)
blurX: modalContainer.x + modalContainer.width * (1 - s) * 0.5 readonly property real op: Math.max(0, Math.min(1, (modalContainer.opacity - 0.06) * 2))
blurY: modalContainer.y + modalContainer.height * (1 - s) * 0.5 blurX: modalContainer.x + modalContainer.width * (1 - s * op) * 0.5
blurWidth: contentVisible ? modalContainer.width * s : 0 blurY: modalContainer.y + modalContainer.height * (1 - s * op) * 0.5
blurHeight: contentVisible ? modalContainer.height * s : 0 blurWidth: contentVisible ? modalContainer.width * s * op : 0
blurHeight: contentVisible ? modalContainer.height * s * op : 0
blurRadius: root.cornerRadius blurRadius: root.cornerRadius
} }
+5 -4
View File
@@ -572,12 +572,13 @@ Item {
targetWindow: contentWindow targetWindow: contentWindow
readonly property real s: Math.min(1, contentContainer.scaleValue) readonly property real s: Math.min(1, contentContainer.scaleValue)
readonly property bool trackBlurFromBarEdge: root.fluidStandaloneActive readonly property bool trackBlurFromBarEdge: root.fluidStandaloneActive
readonly property real op: Math.max(0, Math.min(1, (morph.openProgress - 0.08) * 1.6))
readonly property bool blurAlive: trackBlurFromBarEdge ? (contentContainer.revealWidth > 0 && contentContainer.revealHeight > 0) : root.shouldBeVisible readonly property bool blurAlive: trackBlurFromBarEdge ? (contentContainer.revealWidth > 0 && contentContainer.revealHeight > 0) : root.shouldBeVisible
blurX: trackBlurFromBarEdge ? contentContainer.x + contentContainer.revealX : contentContainer.x + contentContainer.width * (1 - s) * 0.5 + Theme.snap(contentContainer.animX, root.dpr) blurX: trackBlurFromBarEdge ? contentContainer.x + contentContainer.revealX : contentContainer.x + contentContainer.width * (1 - s * op) * 0.5 + Theme.snap(contentContainer.animX, root.dpr)
blurY: trackBlurFromBarEdge ? contentContainer.y + contentContainer.revealY : contentContainer.y + contentContainer.height * (1 - s) * 0.5 + Theme.snap(contentContainer.animY, root.dpr) blurY: trackBlurFromBarEdge ? contentContainer.y + contentContainer.revealY : contentContainer.y + contentContainer.height * (1 - s * op) * 0.5 + Theme.snap(contentContainer.animY, root.dpr)
blurWidth: blurAlive ? (trackBlurFromBarEdge ? contentContainer.revealWidth : contentContainer.width * s) : 0 blurWidth: blurAlive ? (trackBlurFromBarEdge ? contentContainer.revealWidth : contentContainer.width * s * op) : 0
blurHeight: blurAlive ? (trackBlurFromBarEdge ? contentContainer.revealHeight : contentContainer.height * s) : 0 blurHeight: blurAlive ? (trackBlurFromBarEdge ? contentContainer.revealHeight : contentContainer.height * s * op) : 0
blurRadius: Theme.cornerRadius blurRadius: Theme.cornerRadius
} }