1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-08-04 20:48:29 -04:00

refactor(blurSync): reimplement blur sync in popouts & modals

This commit is contained in:
purian23
2026-07-06 23:52:57 -04:00
parent 19a7dcf17d
commit 0bb8353a33
3 changed files with 44 additions and 14 deletions
@@ -62,6 +62,11 @@ Item {
property bool animationsEnabled: true
function _kickBlurCommit() {
if (typeof contentWindow.update === "function")
contentWindow.update();
}
function open() {
closeTimer.stop();
isClosing = false;
@@ -201,6 +206,12 @@ Item {
}
})(), dpr)
onAlignedXChanged: _kickBlurCommit()
onAlignedYChanged: _kickBlurCommit()
onAlignedWidthChanged: _kickBlurCommit()
onAlignedHeightChanged: _kickBlurCommit()
onShouldBeVisibleChanged: _kickBlurCommit()
PanelWindow {
id: clickCatcher
visible: false
@@ -244,11 +255,13 @@ Item {
WindowBlur {
targetWindow: contentWindow
readonly property real s: Math.min(1, modalContainer.scaleValue)
readonly property real op: Math.max(0, Math.min(1, (morph.openProgress - 0.06) * 2))
readonly property real visibleScale: s * op
// Blur tracks the surface's scaled rect, matching the connected backend.
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: root.shouldBeVisible ? modalContainer.width * s : 0
blurHeight: root.shouldBeVisible ? modalContainer.height * s : 0
blurX: modalContainer.x + modalContainer.width * (1 - visibleScale) * 0.5 + Theme.snap(modalContainer.animX, root.dpr)
blurY: modalContainer.y + modalContainer.height * (1 - visibleScale) * 0.5 + Theme.snap(modalContainer.animY, root.dpr)
blurWidth: root.shouldBeVisible ? modalContainer.width * visibleScale : 0
blurHeight: root.shouldBeVisible ? modalContainer.height * visibleScale : 0
blurRadius: root.cornerRadius
}
@@ -338,6 +351,7 @@ Item {
QtObject {
id: morph
property real openProgress: root.shouldBeVisible ? 1 : 0
onOpenProgressChanged: root._kickBlurCommit()
Behavior on openProgress {
enabled: root.animationsEnabled
DankAnim {