Prevent tap dance from wiping dynamic macros (#17880)
This commit is contained in:
		
				
					committed by
					
						
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							de19cb7b22
						
					
				
				
					commit
					c0e6a28bc6
				
			@@ -45,6 +45,10 @@ __attribute__((weak)) void dynamic_macro_record_end_user(int8_t direction) {
 | 
			
		||||
    dynamic_macro_led_blink();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
__attribute__((weak)) bool dynamic_macro_valid_key_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Convenience macros used for retrieving the debug info. All of them
 | 
			
		||||
 * need a `direction` variable accessible at the call site.
 | 
			
		||||
 */
 | 
			
		||||
@@ -252,14 +256,16 @@ bool process_dynamic_macro(uint16_t keycode, keyrecord_t *record) {
 | 
			
		||||
                return false;
 | 
			
		||||
#endif
 | 
			
		||||
            default:
 | 
			
		||||
                /* Store the key in the macro buffer and process it normally. */
 | 
			
		||||
                switch (macro_id) {
 | 
			
		||||
                    case 1:
 | 
			
		||||
                        dynamic_macro_record_key(macro_buffer, ¯o_pointer, r_macro_end, +1, record);
 | 
			
		||||
                        break;
 | 
			
		||||
                    case 2:
 | 
			
		||||
                        dynamic_macro_record_key(r_macro_buffer, ¯o_pointer, macro_end, -1, record);
 | 
			
		||||
                        break;
 | 
			
		||||
                if (dynamic_macro_valid_key_user(keycode, record)) {
 | 
			
		||||
                    /* Store the key in the macro buffer and process it normally. */
 | 
			
		||||
                    switch (macro_id) {
 | 
			
		||||
                        case 1:
 | 
			
		||||
                            dynamic_macro_record_key(macro_buffer, ¯o_pointer, r_macro_end, +1, record);
 | 
			
		||||
                            break;
 | 
			
		||||
                        case 2:
 | 
			
		||||
                            dynamic_macro_record_key(r_macro_buffer, ¯o_pointer, macro_end, -1, record);
 | 
			
		||||
                            break;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                return true;
 | 
			
		||||
                break;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user