New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bug: combo doesn't interrupt tap-dance #1701
Comments
I found a simple solution - switching the order between tap-dance and combo in the CMakeLists.txt . tap-dance needs a position_state_change to get interrupted, combo swallows those events before they arrive to tap-dance so tap-dance isn't interrupted when combo is pressed. P.S. I tried another option, to have tap-dance interrupt using keycode_state_changed. That worked, but when using tap-dance that trigger mods with combos that trigger mod_morph it didn't work because mod_morph checks mod status before it issues the key press, and that's before tap-dance knows sees the keypress keycode state change so the mod_morph always issues the un-moded key. All in all I exhausted my ideas, can anyone help with this? |
I tried a few more options to raise position_state_changed events and the below ended up working. Maybe someone can comment if that's a proper solution?
|
I believe tap dance has a bug that doesn't preserve key input as a queue in the right order. For instance, I set the letter n as a tab dance("nn" triggers another feature). |
tap-dance
is interrupted by key press, meaning, given atap-dance A B
, pressing A then C quickly (before tapping-term-ms) yields AC (and thats the documented behavior).However, given same
tap-dance
and acombo
that generated D keypress, pressing A then the combo quickly (before tapping-term-ms) generate yields DA and not the expected AD.I believe that's a bug.
Is that indeed the case? Is it solvable? Any workaround?
I tested if hold-tap, which also triggers bindings similar to combo, interrupts tap-dance, and it does. So seems the way tap-dance issues the binding is not done right.
The text was updated successfully, but these errors were encountered: