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: {
|
||||
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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue