diff --git a/shell/applets/HexWaveBackground.qml b/shell/applets/HexWaveBackground.qml index 31e57ea..9368f9f 100644 --- a/shell/applets/HexWaveBackground.qml +++ b/shell/applets/HexWaveBackground.qml @@ -7,15 +7,8 @@ Item { property bool running: false property bool reducedMotion: S.Theme.reducedMotion - property bool overlay: false readonly property real wavePhase: fx.uWavePhase - Rectangle { - anchors.fill: parent - color: S.Theme.base01 - visible: !root.overlay - } - ShaderEffect { id: fx anchors.fill: parent diff --git a/shell/lock/LockSurface.qml b/shell/lock/LockSurface.qml index a68e741..ff22f7b 100644 --- a/shell/lock/LockSurface.qml +++ b/shell/lock/LockSurface.qml @@ -13,16 +13,24 @@ WlSessionLockSurface { color: S.Theme.base00 - // Background opacity driven by the first wave sweep across the screen + // Wave progress drives blur/dim/hex overlay reveal property real _unlockFade: 1 - readonly property real _bgOpacity: (root.width > 0 ? Math.max(0, Math.min(1, _hexWave.wavePhase / root.width)) : 0) * _unlockFade + readonly property real _waveProgress: (root.width > 0 ? Math.max(0, Math.min(1, _hexWave.wavePhase / root.width)) : 0) * _unlockFade - // Blur screenshot of desktop as background + // Clear desktop screenshot - visible immediately ScreencopyView { anchors.fill: parent captureSource: root.screen - opacity: root._bgOpacity visible: S.Modules.lock.screenshot ?? true + opacity: _unlockFade + } + + // Blurred screenshot - fades in as wave passes + ScreencopyView { + anchors.fill: parent + captureSource: root.screen + visible: S.Modules.lock.screenshot ?? true + opacity: root._waveProgress layer.enabled: true layer.effect: MultiEffect { @@ -33,20 +41,19 @@ WlSessionLockSurface { } } - // Dim overlay + // Dim overlay - fades in with wave Rectangle { anchors.fill: parent color: Qt.rgba(S.Theme.base00.r, S.Theme.base00.g, S.Theme.base00.b, 0.4) - opacity: root._bgOpacity + opacity: root._waveProgress } - // Hex wave overlay - visible immediately so the sweep reveals the background + // Hex wave - fades in with wave progress C.HexWaveBackground { id: _hexWave anchors.fill: parent running: root.lock.secure - overlay: true - opacity: 0.4 + opacity: root._waveProgress * 0.4 } // Keyboard input via TextInput - engages Qt's full input pipeline including