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

Reply via email to