diff --git a/Modules/Lock/Lock.qml b/Modules/Lock/Lock.qml index f80a2b48..b7d47fd9 100644 --- a/Modules/Lock/Lock.qml +++ b/Modules/Lock/Lock.qml @@ -17,7 +17,7 @@ Item { id: loader WlSessionLock { - id: lock + id: sessionLock property bool unlocked: false property string sharedPasswordBuffer: "" @@ -30,10 +30,11 @@ Item { } LockSurface { - lock: lock - sharedPasswordBuffer: lock.sharedPasswordBuffer + id: lockSurface + lock: sessionLock + sharedPasswordBuffer: sessionLock.sharedPasswordBuffer onPasswordChanged: newPassword => { - lock.sharedPasswordBuffer = newPassword + sessionLock.sharedPasswordBuffer = newPassword } } } diff --git a/Modules/Lock/LockSurface.qml b/Modules/Lock/LockSurface.qml index aa27450b..0cca4378 100644 --- a/Modules/Lock/LockSurface.qml +++ b/Modules/Lock/LockSurface.qml @@ -15,35 +15,45 @@ WlSessionLockSurface { signal passwordChanged(string newPassword) property bool thisLocked: false - readonly property bool locked: thisLocked && !lock.unlocked + readonly property bool locked: thisLocked && lock && !lock.unlocked function unlock(): void { console.log("LockSurface.unlock() called") - lock.unlocked = true - animDelay.start() + if (lock) { + lock.unlocked = true + animDelay.start() + } } Component.onCompleted: { thisLocked = true } + Component.onDestruction: { + animDelay.stop() + } + color: "transparent" Timer { id: animDelay interval: 1500 // Longer delay for success feedback - onTriggered: root.lock.locked = false + onTriggered: { + if (root.lock) { + root.lock.locked = false + } + } } PowerConfirmModal { - id: powerModal + id: powerConfirmModal } Loader { anchors.fill: parent sourceComponent: LockScreenContent { demoMode: false - powerModal: powerModal + powerModal: powerConfirmModal passwordBuffer: root.sharedPasswordBuffer onUnlockRequested: root.unlock() onPasswordBufferChanged: {