tone array:
text data bss dec hex filename
0 25698 0 25698 6462 satan_newsboytko.hex
0x6480 bytes written into 0x7000 bytes memory (89.73%).
note on array:
text data bss dec hex filename
0 25802 0 25802 64ca satan_newsboytko.hex
0x6500 bytes written into 0x7000 bytes memory (90.18%).
since the keycode for a tap dance process gets process only after the
TAPPING_TERM timeout, you really only have ONESHOT_TIMEOUT -
TAPPING_TERM time to tap or double tap on the key. This fix save the
oneshot_mods into the action.state structure and applies the mods with
the keycode when it's registered. It also unregisters the mod when the
the tap dance process gets reset.
There was an odd case, which confused the hell out of tap-dance: suppose
you had a number of tap-dance keys, on a layer, and as part of the
tap-dance, you turned that layer off - or had it on one-shot to begin
with. In this case, the keydown event would trigger the tap-dance key,
but the keyup would not. This had two funky consequences:
- tap-dance did not correctly register that the dance has ended.
- pressing any other tap-dance key would interrupt the previous
tap-dance, and potentially input unwanted characters.
To fix this, we simply do not start a tap-dance sequence on keyup, only
when it is pressed. This way the previous sequence has enough time to
time-out and finish properly, and we don't get confused.
This fixesalgernon/ergodox-layout#107.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
There may be cases where one would like to know the current Unicode
input mode, without having to keep track of it themselves. Add a
function that does just this.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
In order to not declare the same variable in multiple objects (which
happens when building UCIS-enabled keymap for both the ErgoDox EZ and
the ErgoDox Infinity), move the declaration to the .c file, and keep
only an extern reference in the header.
Many thanks to @fredizzimo for spotting the error in Travis, and
suggesting the fix.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
These functions register not only the 8bit keycode, but the modifiers
too. It doesn't handle the full range of the upper 8bits, just the mods,
but that's a good start.
Changed the tap-dance pair functions to use these, so one can do:
`ACTION_TAP_DANCE_DOUBLE (KC_COLN, KC_SCLN)`
...and that will do the right thing.
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>