Merge pull request #890 from algernon/f/space-cadet/timeout
Add a timeout to space-cadet shift.
This commit is contained in:
commit
132c079534
@ -1,5 +1,9 @@
|
||||
#include "quantum.h"
|
||||
|
||||
#ifndef TAPPING_TERM
|
||||
#define TAPPING_TERM 200
|
||||
#endif
|
||||
|
||||
static void do_code16 (uint16_t code, void (*f) (uint8_t)) {
|
||||
switch (code) {
|
||||
case QK_MODS ... QK_MODS_MAX:
|
||||
@ -75,6 +79,7 @@ void reset_keyboard(void) {
|
||||
#endif
|
||||
|
||||
static bool shift_interrupted[2] = {0, 0};
|
||||
static uint16_t scs_timer = 0;
|
||||
|
||||
bool process_record_quantum(keyrecord_t *record) {
|
||||
|
||||
@ -283,6 +288,7 @@ bool process_record_quantum(keyrecord_t *record) {
|
||||
case KC_LSPO: {
|
||||
if (record->event.pressed) {
|
||||
shift_interrupted[0] = false;
|
||||
scs_timer = timer_read ();
|
||||
register_mods(MOD_BIT(KC_LSFT));
|
||||
}
|
||||
else {
|
||||
@ -292,7 +298,7 @@ bool process_record_quantum(keyrecord_t *record) {
|
||||
shift_interrupted[1] = true;
|
||||
}
|
||||
#endif
|
||||
if (!shift_interrupted[0]) {
|
||||
if (!shift_interrupted[0] && timer_elapsed(scs_timer) < TAPPING_TERM) {
|
||||
register_code(LSPO_KEY);
|
||||
unregister_code(LSPO_KEY);
|
||||
}
|
||||
@ -305,6 +311,7 @@ bool process_record_quantum(keyrecord_t *record) {
|
||||
case KC_RSPC: {
|
||||
if (record->event.pressed) {
|
||||
shift_interrupted[1] = false;
|
||||
scs_timer = timer_read ();
|
||||
register_mods(MOD_BIT(KC_RSFT));
|
||||
}
|
||||
else {
|
||||
@ -314,7 +321,7 @@ bool process_record_quantum(keyrecord_t *record) {
|
||||
shift_interrupted[1] = true;
|
||||
}
|
||||
#endif
|
||||
if (!shift_interrupted[1]) {
|
||||
if (!shift_interrupted[1] && timer_elapsed(scs_timer) < TAPPING_TERM) {
|
||||
register_code(RSPC_KEY);
|
||||
unregister_code(RSPC_KEY);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user