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
This commit is contained in:
parent
f9cb7443bb
commit
76215abd38
1 changed files with 12 additions and 0 deletions
|
|
@ -376,6 +376,8 @@ static void on_dance_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||||
case SINGLE_TAP: {
|
case SINGLE_TAP: {
|
||||||
if (td_entry.on_tap)
|
if (td_entry.on_tap)
|
||||||
vial_keycode_down(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;
|
break;
|
||||||
}
|
}
|
||||||
case SINGLE_HOLD: {
|
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) {
|
if (td_entry.on_tap) {
|
||||||
vial_keycode_tap(td_entry.on_tap);
|
vial_keycode_tap(td_entry.on_tap);
|
||||||
vial_keycode_down(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;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -432,6 +438,8 @@ static void on_dance_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||||
case SINGLE_TAP: {
|
case SINGLE_TAP: {
|
||||||
if (td_entry.on_tap)
|
if (td_entry.on_tap)
|
||||||
vial_keycode_up(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;
|
break;
|
||||||
}
|
}
|
||||||
case SINGLE_HOLD: {
|
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: {
|
case DOUBLE_SINGLE_TAP: {
|
||||||
if (td_entry.on_tap) {
|
if (td_entry.on_tap) {
|
||||||
vial_keycode_up(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;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue