aboutsummaryrefslogtreecommitdiffstats
path: root/quantum/quantum.c
diff options
context:
space:
mode:
authorPriyadi Iman Nurcahyo <priyadi@priyadi.net>2016-11-26 13:31:17 +0700
committerPriyadi Iman Nurcahyo <priyadi@priyadi.net>2016-11-26 13:31:17 +0700
commitb5511b9a8aa3827279fc132ecf3e5dd9c9c07668 (patch)
treee902e8f6dfc67272a98bfbbba0f77b7830bb8604 /quantum/quantum.c
parent4b0d16cd7bdcd41cffb17a7b6eed7cb44beaef34 (diff)
parentbf23ac96f62be1cb36d414e76599523af3caf00f (diff)
downloadfirmware-b5511b9a8aa3827279fc132ecf3e5dd9c9c07668.tar.gz
firmware-b5511b9a8aa3827279fc132ecf3e5dd9c9c07668.tar.bz2
firmware-b5511b9a8aa3827279fc132ecf3e5dd9c9c07668.zip
Merge branch 'master' into promethium
Diffstat (limited to 'quantum/quantum.c')
-rw-r--r--quantum/quantum.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/quantum/quantum.c b/quantum/quantum.c
index 098312e6e..b5e2d60b9 100644
--- a/quantum/quantum.c
+++ b/quantum/quantum.c
@@ -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);
}