Combo TAP_CODE_DELAY and clear_weak_mods (#15866)
				
					
				
			This commit is contained in:
		@@ -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;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user