@ -43,12 +43,16 @@ static inline void process_tap_dance_action_on_dance_finished (qk_tap_dance_acti
if ( action - > state . finished )
if ( action - > state . finished )
return ;
return ;
action - > state . finished = true ;
action - > state . finished = true ;
add_mods ( action - > state . oneshot_mods ) ;
send_keyboard_report ( ) ;
_process_tap_dance_action_fn ( & action - > state , action - > user_data , action - > fn . on_dance_finished ) ;
_process_tap_dance_action_fn ( & action - > state , action - > user_data , action - > fn . on_dance_finished ) ;
}
}
static inline void process_tap_dance_action_on_reset ( qk_tap_dance_action_t * action )
static inline void process_tap_dance_action_on_reset ( qk_tap_dance_action_t * action )
{
{
_process_tap_dance_action_fn ( & action - > state , action - > user_data , action - > fn . on_reset ) ;
_process_tap_dance_action_fn ( & action - > state , action - > user_data , action - > fn . on_reset ) ;
del_mods ( action - > state . oneshot_mods ) ;
send_keyboard_report ( ) ;
}
}
bool process_tap_dance ( uint16_t keycode , keyrecord_t * record ) {
bool process_tap_dance ( uint16_t keycode , keyrecord_t * record ) {
@ -70,6 +74,7 @@ bool process_tap_dance(uint16_t keycode, keyrecord_t *record) {
action - > state . keycode = keycode ;
action - > state . keycode = keycode ;
action - > state . count + + ;
action - > state . count + + ;
action - > state . timer = timer_read ( ) ;
action - > state . timer = timer_read ( ) ;
action - > state . oneshot_mods = get_oneshot_mods ( ) ;
process_tap_dance_action_on_each_tap ( action ) ;
process_tap_dance_action_on_each_tap ( action ) ;
if ( last_td & & last_td ! = keycode ) {
if ( last_td & & last_td ! = keycode ) {