diff --git a/Modules/Lock/Lock.qml b/Modules/Lock/Lock.qml index 74494d6a..f164f864 100644 --- a/Modules/Lock/Lock.qml +++ b/Modules/Lock/Lock.qml @@ -82,12 +82,16 @@ Scope { locked: shouldLock WlSessionLockSurface { + id: lockSurface + color: "transparent" LockSurface { anchors.fill: parent lock: sessionLock sharedPasswordBuffer: root.sharedPasswordBuffer + screenName: lockSurface.screen?.name ?? "" + isLocked: shouldLock onUnlockRequested: { root.unlock() } diff --git a/Modules/Lock/LockSurface.qml b/Modules/Lock/LockSurface.qml index 4d2f54ed..05d26f8a 100644 --- a/Modules/Lock/LockSurface.qml +++ b/Modules/Lock/LockSurface.qml @@ -10,6 +10,8 @@ Rectangle { required property WlSessionLock lock required property string sharedPasswordBuffer + required property string screenName + required property bool isLocked signal passwordChanged(string newPassword) signal unlockRequested() @@ -17,10 +19,12 @@ Rectangle { color: "transparent" LockScreenContent { + id: lockContent + anchors.fill: parent demoMode: false passwordBuffer: root.sharedPasswordBuffer - screenName: "" + screenName: root.screenName onUnlockRequested: root.unlockRequested() onPasswordBufferChanged: { if (root.sharedPasswordBuffer !== passwordBuffer) { @@ -28,4 +32,10 @@ Rectangle { } } } + + onIsLockedChanged: { + if (!isLocked) { + lockContent.unlocking = false + } + } }