fix(lock): harden lock screen input paths
CI / typecheck + test + build (windows) (push) Canceled after 0s

- remove the application menu while locked (lockMenu.ts): Alt reveals the
  default menu and its mouse-clickable Reload/DevTools/Zoom items bypass
  before-input-event entirely; menu is rebuilt from the default template on
  unlock, startup-restored locks covered from initLockController
- extract the keyboard classification into pure lockShortcuts.ts
  (isLockBlockedShortcut/isPanicLockChord) with a table-driven test
  (lock-shortcuts.mjs, 29 cases) — the v1.0.17 lockout escaped CI because
  this decision lived inline in createWindow()
- reserve Ctrl+L in the global show/hide shortcut recorder: a global
  registration intercepts the chord at OS level and silently disables the
  panic lock
- skip auto-repeat keydowns in the panic-lock branch (held Ctrl+L on an
  unconfigured app re-read lock.json + settings.json per repeat)
- LockScreen: re-sync the cooldown clock on visibilitychange/focus/pageshow
  so a suspended renderer timer cannot leave the password input disabled
  past the real deadline
This commit is contained in:
Bill committed 2026-09-30 00:38:57 +08:00
1 parent dd08f8054a
commit 86f51df2e6
11 files changed
+229 -44

No files matched your search

+1
View File
@@ -27,6 +27,7 @@ tests/.commands-store.cjs
tests/.known-hosts.cjs
tests/.lock-store.cjs
tests/.lock-controller.cjs
tests/.lock-shortcuts.cjs
tests/.settings-store.cjs
tests/.session-e2e.cjs
tests/.hl-split-smoke.cjs