Combo `TAP_CODE_DELAY` and `clear_weak_mods` (#15866)
parent
8c1c377272
commit
d700447dda
|
@ -17,6 +17,7 @@
|
||||||
#include "print.h"
|
#include "print.h"
|
||||||
#include "process_combo.h"
|
#include "process_combo.h"
|
||||||
#include "action_tapping.h"
|
#include "action_tapping.h"
|
||||||
|
#include "action.h"
|
||||||
|
|
||||||
#ifdef COMBO_COUNT
|
#ifdef COMBO_COUNT
|
||||||
__attribute__((weak)) combo_t key_combos[COMBO_COUNT];
|
__attribute__((weak)) combo_t key_combos[COMBO_COUNT];
|
||||||
|
@ -193,6 +194,9 @@ void clear_combos(void) {
|
||||||
static inline void dump_key_buffer(void) {
|
static inline void dump_key_buffer(void) {
|
||||||
/* First call start from 0 index; recursive calls need to start from i+1 index */
|
/* First call start from 0 index; recursive calls need to start from i+1 index */
|
||||||
static uint8_t key_buffer_next = 0;
|
static uint8_t key_buffer_next = 0;
|
||||||
|
#if TAP_CODE_DELAY > 0
|
||||||
|
bool delay_done = false;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (key_buffer_size == 0) {
|
if (key_buffer_size == 0) {
|
||||||
return;
|
return;
|
||||||
|
@ -218,6 +222,15 @@ static inline void dump_key_buffer(void) {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
record->event.time = 0;
|
record->event.time = 0;
|
||||||
|
clear_weak_mods();
|
||||||
|
|
||||||
|
#if TAP_CODE_DELAY > 0
|
||||||
|
// only delay once and for a non-tapping key
|
||||||
|
if (!delay_done && !is_tap_record(record)) {
|
||||||
|
delay_done = true;
|
||||||
|
wait_ms(TAP_CODE_DELAY);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
key_buffer_next = key_buffer_size = 0;
|
key_buffer_next = key_buffer_size = 0;
|
||||||
|
|
Loading…
Reference in New Issue