From abb9b963f0d631acefb02eacae29ec5e9a9ebd46 Mon Sep 17 00:00:00 2001 From: Micah Stanley Date: Thu, 21 Nov 2024 13:36:29 +0000 Subject: [PATCH] lockscreen: handle backspace and enter key when switching from keypad This fixes an issue were pressing the backspace or enter key on the keyboard when using the keypad, unexpected results occurred. This also fixes an issue were if only one key is typed from the initial lockscreen view, the backspace key would not actually do anything. --- shell/contents/lockscreen/PasswordBar.qml | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/shell/contents/lockscreen/PasswordBar.qml b/shell/contents/lockscreen/PasswordBar.qml index ea0052a9..0f040df4 100644 --- a/shell/contents/lockscreen/PasswordBar.qml +++ b/shell/contents/lockscreen/PasswordBar.qml @@ -73,13 +73,19 @@ Rectangle { function keyPress(data) { if (!lockScreenState.waitingForAuth) { - root.lockScreenState.resetPinLabel(); + if (data === "\x08") { // Handle backspace + root.backspace(); + } else if (data === "\r") { // Handle enter + root.enter(); + } else { + root.lockScreenState.resetPinLabel(); - root.previewCharIndex = lockScreenState.password.length; - lockScreenState.password += data + root.previewCharIndex = lockScreenState.password.length; + lockScreenState.password += data - // trigger turning letter into dot later - letterTimer.restart(); + // trigger turning letter into dot later + letterTimer.restart(); + } } } @@ -146,8 +152,8 @@ Rectangle { } else if (text.length > 0) { // key enter root.keyPress(text.charAt(text.length - 1)); } - prevText = text; } + prevText = text; externalEdit = false; } }