forked from mirrors/qmk_userspace
On-each-release tap dance function (#20255)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
This commit is contained in:
parent
821db155f2
commit
2c70d38910
6 changed files with 159 additions and 7 deletions
|
@ -95,6 +95,10 @@ static inline void process_tap_dance_action_on_each_tap(tap_dance_action_t *acti
|
|||
_process_tap_dance_action_fn(&action->state, action->user_data, action->fn.on_each_tap);
|
||||
}
|
||||
|
||||
static inline void process_tap_dance_action_on_each_release(tap_dance_action_t *action) {
|
||||
_process_tap_dance_action_fn(&action->state, action->user_data, action->fn.on_each_release);
|
||||
}
|
||||
|
||||
static inline void process_tap_dance_action_on_reset(tap_dance_action_t *action) {
|
||||
_process_tap_dance_action_fn(&action->state, action->user_data, action->fn.on_reset);
|
||||
del_weak_mods(action->state.weak_mods);
|
||||
|
@ -158,8 +162,12 @@ bool process_tap_dance(uint16_t keycode, keyrecord_t *record) {
|
|||
process_tap_dance_action_on_each_tap(action);
|
||||
active_td = action->state.finished ? 0 : keycode;
|
||||
} else {
|
||||
process_tap_dance_action_on_each_release(action);
|
||||
if (action->state.finished) {
|
||||
process_tap_dance_action_on_reset(action);
|
||||
if (active_td == keycode) {
|
||||
active_td = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue