|
@@ -75,6 +75,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 +284,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 +294,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 +307,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 +317,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);
|
|
|
}
|