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 @@
7 7
8bool preprocess_secure(uint16_t keycode, keyrecord_t *record) { 8bool preprocess_secure(uint16_t keycode, keyrecord_t *record) {
9 if (secure_is_unlocking()) { 9 if (secure_is_unlocking()) {
10 if (!record->event.pressed) { 10 // !pressed will trigger on any already held keys (such as layer keys),
11 // and cause the request secure check to prematurely fail.
12 if (record->event.pressed) {
11 secure_keypress_event(record->event.key.row, record->event.key.col); 13 secure_keypress_event(record->event.key.row, record->event.key.col);
12 } 14 }
13 15
@@ -33,7 +35,11 @@ bool process_secure(uint16_t keycode, keyrecord_t *record) {
33 secure_is_locked() ? secure_unlock() : secure_lock(); 35 secure_is_locked() ? secure_unlock() : secure_lock();
34 return false; 36 return false;
35 } 37 }
38 if (keycode == SECURE_REQUEST) {
39 secure_request_unlock();
40 return false;
41 }
36 } 42 }
37#endif 43#endif
38 return true; 44 return true;
39} \ No newline at end of file 45}