}
}
+void qk_tap_dance_dual_role_finished (qk_tap_dance_state_t *state, void *user_data) {
+ qk_tap_dance_dual_role_t *pair = (qk_tap_dance_dual_role_t *)user_data;
+
+ if (state->count == 1) {
+ register_code16 (pair->kc);
+ } else if (state->count == 2) {
+ layer_move (pair->layer);
+ }
+}
+
+void qk_tap_dance_dual_role_reset (qk_tap_dance_state_t *state, void *user_data) {
+ qk_tap_dance_dual_role_t *pair = (qk_tap_dance_dual_role_t *)user_data;
+
+ if (state->count == 1) {
+ unregister_code16 (pair->kc);
+ }
+}
+
static inline void _process_tap_dance_action_fn (qk_tap_dance_state_t *state,
void *user_data,
qk_tap_dance_user_fn_t fn)
return;
action->state.finished = true;
add_mods(action->state.oneshot_mods);
+ add_weak_mods(action->state.weak_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_reset);
del_mods(action->state.oneshot_mods);
+ del_weak_mods(action->state.weak_mods);
send_keyboard_report();
}
action->state.count++;
action->state.timer = timer_read();
action->state.oneshot_mods = get_oneshot_mods();
+ action->state.weak_mods = get_mods();
+ action->state.weak_mods |= get_weak_mods();
process_tap_dance_action_on_each_tap (action);
if (last_td && last_td != keycode) {