Compare commits

...
Sign in to create a new pull request.
Author SHA1 Message Date
Ilya Zhuravlev
76215abd38 tap dance: fix behavior when interrupted and hold is defined but not tap
fall into hold on interrupt if corresponding tap action isn't defined
for the case of double-tap vs tap-then-hold, continue to prefer the
double-tap interrupt following the existing permissive=false model
2023-02-13 09:47:07 -06:00

View file

@ -376,6 +376,8 @@ static void on_dance_finished(qk_tap_dance_state_t *state, void *user_data) {
case SINGLE_TAP: {
if (td_entry.on_tap)
vial_keycode_down(td_entry.on_tap);
else if (td_entry.on_hold)
vial_keycode_down(td_entry.on_hold);
break;
}
case SINGLE_HOLD: {
@ -414,6 +416,10 @@ static void on_dance_finished(qk_tap_dance_state_t *state, void *user_data) {
if (td_entry.on_tap) {
vial_keycode_tap(td_entry.on_tap);
vial_keycode_down(td_entry.on_tap);
} else if (td_entry.on_double_tap) {
vial_keycode_down(td_entry.on_double_tap);
} else if (td_entry.on_tap_hold) {
vial_keycode_down(td_entry.on_tap_hold);
}
break;
}
@ -432,6 +438,8 @@ static void on_dance_reset(qk_tap_dance_state_t *state, void *user_data) {
case SINGLE_TAP: {
if (td_entry.on_tap)
vial_keycode_up(td_entry.on_tap);
else if (td_entry.on_hold)
vial_keycode_up(td_entry.on_hold);
break;
}
case SINGLE_HOLD: {
@ -467,6 +475,10 @@ static void on_dance_reset(qk_tap_dance_state_t *state, void *user_data) {
case DOUBLE_SINGLE_TAP: {
if (td_entry.on_tap) {
vial_keycode_up(td_entry.on_tap);
} else if (td_entry.on_double_tap) {
vial_keycode_up(td_entry.on_double_tap);
} else if (td_entry.on_tap_hold) {
vial_keycode_up(td_entry.on_tap_hold);
}
break;
}