diff --git a/Greeter/GreeterState.qml b/Greeter/GreeterState.qml index d74bb3c..9571cb5 100644 --- a/Greeter/GreeterState.qml +++ b/Greeter/GreeterState.qml @@ -16,27 +16,14 @@ Scope { property bool launching: false property string promptMessage: "" readonly property var selectedSession: sessionIndex >= 0 ? sessions[sessionIndex] : null + readonly property var selectedUser: Users.selectedUser property int sessionIndex: sessions.length > 0 ? 0 : -1 property var sessions: [] + readonly property string userFace: selectedUser ? selectedUser.face : "" + readonly property string username: Users.selectedUsername // User handling - now uses the Users singleton readonly property var users: Users.users - readonly property var selectedUser: Users.selectedUser - readonly property string username: Users.selectedUsername - readonly property string userFace: selectedUser ? selectedUser.face : "" - - // User selection functions (delegate to Users singleton) - function selectUser(username: string): bool { - return Users.selectUser(username); - } - - function selectNextUser(): void { - Users.selectNext(); - } - - function selectPreviousUser(): void { - Users.selectPrevious(); - } signal flashMsg @@ -58,11 +45,11 @@ Scope { event.accepted = true; return; - } - - if (event.text && !/[\r\n]/.test(event.text)) { + } else if (event.key === Qt.Key_Escape) { + buffer = ""; + } else if (" abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\\|;:'\",<.>/?".includes(event.text.toLowerCase())) { + // No illegal characters (you are insane if you use unicode in your password) buffer += event.text; - event.accepted = true; } } @@ -81,6 +68,19 @@ Scope { Greetd.launch(selectedSession.command, [], true); } + function selectNextUser(): void { + Users.selectNext(); + } + + function selectPreviousUser(): void { + Users.selectPrevious(); + } + + // User selection functions (delegate to Users singleton) + function selectUser(username: string): bool { + return Users.selectUser(username); + } + function submit(): void { errorMessage = ""; diff --git a/Modules/Lock/Pam.qml b/Modules/Lock/Pam.qml index ea31407..64edbd4 100644 --- a/Modules/Lock/Pam.qml +++ b/Modules/Lock/Pam.qml @@ -30,6 +30,8 @@ Scope { } else { buffer = buffer.slice(0, -1); } + } else if (event.key === Qt.Key_Escape) { + buffer = ""; } else if (" abcdefghijklmnopqrstuvwxyz1234567890`~!@#$%^&*()-_=+[{]}\\|;:'\",<.>/?".includes(event.text.toLowerCase())) { // No illegal characters (you are insane if you use unicode in your password) buffer += event.text;