summaryrefslogtreecommitdiff
path: root/quantum/process_keycode/process_secure.c
diff options
context:
space:
mode:
Diffstat (limited to 'quantum/process_keycode/process_secure.c')
-rw-r--r--quantum/process_keycode/process_secure.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/quantum/process_keycode/process_secure.c b/quantum/process_keycode/process_secure.c
index 827ace597a..3224104c99 100644
--- a/quantum/process_keycode/process_secure.c
+++ b/quantum/process_keycode/process_secure.c
@@ -7,7 +7,9 @@
bool preprocess_secure(uint16_t keycode, keyrecord_t *record) {
if (secure_is_unlocking()) {
- if (!record->event.pressed) {
+ // !pressed will trigger on any already held keys (such as layer keys),
+ // and cause the request secure check to prematurely fail.
+ if (record->event.pressed) {
secure_keypress_event(record->event.key.row, record->event.key.col);
}
@@ -33,7 +35,11 @@ bool process_secure(uint16_t keycode, keyrecord_t *record) {
secure_is_locked() ? secure_unlock() : secure_lock();
return false;
}
+ if (keycode == SECURE_REQUEST) {
+ secure_request_unlock();
+ return false;
+ }
}
#endif
return true;
-} \ No newline at end of file
+}