~ruther/qmk_firmware

3ddec14eb8c1b666df381573c6db8a4b2fda035f — Giuseppe Rota 6 years ago 46b4b44
Register the interrupting keycode in the tap dance state struct
M quantum/process_keycode/process_tap_dance.c => quantum/process_keycode/process_tap_dance.c +2 -0
@@ 131,6 131,7 @@ void preprocess_tap_dance(uint16_t keycode, keyrecord_t *record) {
      if (keycode == action->state.keycode && keycode == last_td)
        continue;
      action->state.interrupted = true;
      action->state.interrupting_keycode = keycode;
      process_tap_dance_action_on_dance_finished (action);
      reset_tap_dance (&action->state);
    }


@@ 209,5 210,6 @@ void reset_tap_dance (qk_tap_dance_state_t *state) {
  state->count = 0;
  state->interrupted = false;
  state->finished = false;
  state->interrupting_keycode = 0;
  last_td = 0;
}

M quantum/process_keycode/process_tap_dance.h => quantum/process_keycode/process_tap_dance.h +1 -0
@@ 27,6 27,7 @@ typedef struct
  uint8_t oneshot_mods;
  uint8_t weak_mods;
  uint16_t keycode;
  uint16_t interrupting_keycode;
  uint16_t timer;
  bool interrupted;
  bool pressed;