fix reveal mask not latching - move phase check into shader effect

This commit is contained in:
Damocles 2026-04-18 11:47:34 +02:00
parent cad64e7fe6
commit 7e9baa9b7e

View file

@ -25,23 +25,22 @@ WlSessionLockSurface {
// Overlay group: blur + dim + hexes, revealed per-pixel by wave position // Overlay group: blur + dim + hexes, revealed per-pixel by wave position
Item { Item {
id: _overlay
anchors.fill: parent anchors.fill: parent
opacity: _unlockFade opacity: _unlockFade
property bool _revealed: false property bool _revealed: false
onVisibleChanged: _revealed = false
layer.enabled: !_revealed layer.enabled: !_revealed
layer.effect: ShaderEffect { layer.effect: ShaderEffect {
property real uPhase: _hexWave.wavePhase property real uPhase: _hexWave.wavePhase
property real uWidth: root.width property real uWidth: root.width
fragmentShader: Quickshell.shellPath("modules/reveal_mask.frag.qsb") fragmentShader: Quickshell.shellPath("modules/reveal_mask.frag.qsb")
}
Connections { onUPhaseChanged: {
target: _hexWave if (!_overlay._revealed && uPhase >= _overlay.width)
function onWavePhaseChanged() { _overlay._revealed = true;
if (!parent._revealed && _hexWave.wavePhase >= root.width)
parent._revealed = true;
} }
} }