diff options
| author | Ilya Zhuravlev <whatever@xyz.is> | 2021-07-03 14:09:08 -0400 |
|---|---|---|
| committer | Ilya Zhuravlev <whatever@xyz.is> | 2021-07-17 23:46:10 -0400 |
| commit | be80d90f425c04718ed70d048d8c60528cb2c0a3 (patch) | |
| tree | 535e3f874de4da0ee46a4c22d38726ea458629c5 /quantum/vial.c | |
| parent | 5f4aa29c0d33fc7b6ded42c41b05f3d700a50c27 (diff) | |
vial/tap-dance: adjust behavior for double tap+hold
Diffstat (limited to 'quantum/vial.c')
| -rw-r--r-- | quantum/vial.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/quantum/vial.c b/quantum/vial.c index 9d0f0411b8..3afd1fd392 100644 --- a/quantum/vial.c +++ b/quantum/vial.c @@ -346,7 +346,7 @@ static void on_dance_finished(qk_tap_dance_state_t *state, void *user_data) { if (td_entry.on_double_tap) { register_code16(td_entry.on_double_tap); } else if (td_entry.on_tap) { - register_code16(td_entry.on_tap); + tap_code16(td_entry.on_tap); register_code16(td_entry.on_tap); } break; @@ -355,7 +355,10 @@ static void on_dance_finished(qk_tap_dance_state_t *state, void *user_data) { if (td_entry.on_tap_hold) { register_code16(td_entry.on_tap_hold); } else { - if (td_entry.on_tap) { + if (td_entry.on_double_tap) { + tap_code16(td_entry.on_double_tap); + register_code16(td_entry.on_double_tap); + } else if (td_entry.on_tap) { tap_code16(td_entry.on_tap); if (td_entry.on_hold) register_code16(td_entry.on_hold); @@ -381,7 +384,6 @@ static void on_dance_reset(qk_tap_dance_state_t *state, void *user_data) { uint8_t index = (uintptr_t)user_data; if (dynamic_keymap_get_tap_dance(index, &td_entry) != 0) return; - wait_ms(10); switch (dance_state[index]) { case SINGLE_TAP: { if (td_entry.on_tap) @@ -400,7 +402,6 @@ static void on_dance_reset(qk_tap_dance_state_t *state, void *user_data) { unregister_code16(td_entry.on_double_tap); } else if (td_entry.on_tap) { unregister_code16(td_entry.on_tap); - unregister_code16(td_entry.on_tap); } break; } @@ -408,7 +409,9 @@ static void on_dance_reset(qk_tap_dance_state_t *state, void *user_data) { if (td_entry.on_tap_hold) { unregister_code16(td_entry.on_tap_hold); } else { - if (td_entry.on_tap) { + if (td_entry.on_double_tap) { + unregister_code16(td_entry.on_double_tap); + } else if (td_entry.on_tap) { if (td_entry.on_hold) unregister_code16(td_entry.on_hold); else |
