diff options
Diffstat (limited to 'docs/ChangeLog/20250831/pr25415.md')
| -rw-r--r-- | docs/ChangeLog/20250831/pr25415.md | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/docs/ChangeLog/20250831/pr25415.md b/docs/ChangeLog/20250831/pr25415.md deleted file mode 100644 index 54eb8c737e..0000000000 --- a/docs/ChangeLog/20250831/pr25415.md +++ /dev/null @@ -1,47 +0,0 @@ -# Tap dance state removed from `tap_dance_action_t` - -The tap dance state has been separated from the action structure. Custom tap dance functions now receive the state as a separate parameter instead of accessing it through `action->state`. - -## User Action Required - -If your keymap uses custom tap dance functions that access the tap dance state, you need to update your code. - - - You can't use `action->state`. Instead you need to call `tap_dance_state_t *tap_dance_get_state(uint8_t tap_dance_idx)` to get the state. - - You now get a pointer to the state, so use `->` notation rather than `.` notation to get fields from it. - -### Before: -```c -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - tap_dance_action_t *action; - - switch (keycode) { - case TD(CT_CLN): - action = tap_dance_get(QK_TAP_DANCE_GET_INDEX(keycode)); - if (!record->event.pressed && action->state.count && !action->state.finished) { - tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data; - tap_code16(tap_hold->tap); - } - - } - return true; -} -``` - -### After: -```c -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - tap_dance_action_t *action; - tap_dance_state_t* state; - - switch (keycode) { - case TD(CT_CLN): - action = tap_dance_get(QK_TAP_DANCE_GET_INDEX(keycode)); - state = tap_dance_get_state(QK_TAP_DANCE_GET_INDEX(keycode)); - if (!record->event.pressed && state != NULL && state->count && !state->finished) { - tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data; - tap_code16(tap_hold->tap); - } - } - return true; -} -``` |