diff options
Diffstat (limited to 'quantum/process_keycode')
| -rw-r--r-- | quantum/process_keycode/process_auto_shift.c | 20 | ||||
| -rw-r--r-- | quantum/process_keycode/process_auto_shift.h | 1 | 
2 files changed, 14 insertions, 7 deletions
| diff --git a/quantum/process_keycode/process_auto_shift.c b/quantum/process_keycode/process_auto_shift.c index bf359e994d..51b0efdb47 100644 --- a/quantum/process_keycode/process_auto_shift.c +++ b/quantum/process_keycode/process_auto_shift.c @@ -216,7 +216,18 @@ bool process_auto_shift(uint16_t keycode, keyrecord_t *record) {  #    endif          }      } +    if (get_auto_shifted_key(keycode, record)) { +        if (record->event.pressed) { +            return autoshift_press(keycode, now, record); +        } else { +            autoshift_end(keycode, now, false); +            return false; +        } +    } +    return true; +} +__attribute__((weak)) bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {      switch (keycode) {  #    ifndef NO_AUTO_SHIFT_ALPHA          case KC_A ... KC_Z: @@ -229,14 +240,9 @@ bool process_auto_shift(uint16_t keycode, keyrecord_t *record) {          case KC_MINUS ... KC_SLASH:          case KC_NONUS_BSLASH:  #    endif -            if (record->event.pressed) { -                return autoshift_press(keycode, now, record); -            } else { -                autoshift_end(keycode, now, false); -                return false; -            } +            return true;      } -    return true; +    return false;  }  #endif diff --git a/quantum/process_keycode/process_auto_shift.h b/quantum/process_keycode/process_auto_shift.h index 5b2718f11c..00a9ab036f 100644 --- a/quantum/process_keycode/process_auto_shift.h +++ b/quantum/process_keycode/process_auto_shift.h @@ -31,3 +31,4 @@ bool     get_autoshift_state(void);  uint16_t get_autoshift_timeout(void);  void     set_autoshift_timeout(uint16_t timeout);  void     autoshift_matrix_scan(void); +bool     get_auto_shifted_key(uint16_t keycode, keyrecord_t *record); | 
