siddharthasahu added a comment.
I took another look. As I already mentioned, there seems to be a difference between how `onLoginFailed` signals work in both. In the lock screen: - the `onLoginFailed` <https://cgit.kde.org/plasma-workspace.git/tree/lookandfeel/contents/lockscreen/LockScreenUi.qml#n41> signal is delivered as soon as the password is detected to be incorrec. I use this signal to selectAll() the password text so the user can start editing. - The grace timeout is a separate signal `onGraceLockedChanged` <https://cgit.kde.org/plasma-workspace.git/tree/lookandfeel/contents/lockscreen/LockScreenUi.qml#n44>, which is used to clear the "Login failed" message. To summarize, the flow is: (enter password) --> (loginFailed) --[authenticator timeout expires]--> (graceLockedChanged). On the other hand, in sddm: - the `onLoginFailed` <https://cgit.kde.org/plasma-workspace.git/tree/sddm-theme/Main.qml#n452> signal is delivered only after grace timeout has expired. - the "Login failed" message is cleared with a qml timer. the flow is: (enter password) --[authenticator timeout expires]--> (loginFailed) --> (notificationResetTimer). The behaviour of sddm can only be made the same as the lock screen if the `loginFailed` signal is delivered independent of the authenticator timeout. If someone can tell me how the `onLoginFailed` signals are generated, I can take a look to see if there is a difference in the backend timers. I'm guessing there is some C++ code handling this? REPOSITORY R120 Plasma Workspace REVISION DETAIL https://phabricator.kde.org/D21192 To: siddharthasahu, ngraham, #plasma, #vdg Cc: filipf, davidedmundson, plasma-devel, jraleigh, GB_2, ragreen, Pitel, ZrenBot, himcesjf, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart