qmk-dactyl-manuform-a/keyboards/ergodox/keymaps
Gergely Nagy 29f64d7a93 tap-dance: Major rework, to make it more reliable
This reworks how the tap-dance feature works: instead of one global
state, we have a state for each tap-dance key, so we can cancel them
when another tap-dance key is in flight. This fixes #527.

Since we have a state for each key, we can avoid situation where a keyup
would mess with our global state. This fixes #563.

And while here, we also make sure to fire events only once, and this
fixes #574.

There is one breaking change, though: tap-dance debugging support was
removed, because dumping the whole state would increase the firmware
size too much. Any keymap that made use of this, will have to be
updated (but there's no such keymap in the repo).

Also, there's a nice trick used in this rework: we need to iterate
through tap_dance_actions in a few places, to check for timeouts, and so
on. For this, we'd need to know the size of the array. We can't discover
that at compile-time, because tap-dance gets compiled separately. We'd
like to avoid having to terminate the list with a sentinel value,
because that would require updates to all keymaps that use the feature.
So, we keep track of the highest tap-dance code seen so far, and iterate
until that index.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-17 15:05:58 +02:00
..
ab All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
adnw_k_o_y All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
alexjj All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
algernon tap-dance: Major rework, to make it more reliable 2016-08-17 15:05:58 +02:00
andrew_osx All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
bepo All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
coderkun_neo2 All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
colemak All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
colemak_osx_pc_no All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
csharp_dev All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
dave All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
default Generate version information to version.h 2016-07-31 13:42:05 +03:00
default_osx All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
dragon788 All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
dvorak All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
dvorak_intl_squisher All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
dvorak_spanish All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
emacs_osx_dk All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
erez_experimental All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
german All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
german-kinergo All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
german-manuneo All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
j3rn Updated readme with recent changes 2016-07-30 14:37:54 -04:00
jack All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
jacobono All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
jgarr All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
josh Generate version information to version.h 2016-07-31 13:42:05 +03:00
kastyle All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
kines-ish All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
maz All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
mpiechotka All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
msc All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
naps62 All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
ordinary All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
osx_de All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
osx_de_adnw_koy All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
osx_de_experimental All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
osx_fr All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
osx_kinesis_pnut All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
plover All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
plums All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
romanzolotarev-norman-osx All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
romanzolotarev-norman-plover-osx All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
romanzolotarev-norman-plover-osx-hjkl All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
romanzolotarev-norman-qwerty-osx All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
sethbc rebase 2016-07-30 10:46:13 -04:00
sneako All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
software_neo2 All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
supercoder Update some obsolete references 2016-07-30 08:37:30 +02:00
techtomas All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
teckinesis All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
tkuichooseyou All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
tm2030 All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
tonyabra_osx All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
townk_osx Cleanup the townk_osx config.h and make files 2016-07-29 21:09:34 +03:00
twey All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
workman_osx_mdw All Ez keymaps compiles 2016-07-29 20:48:19 +03:00
xyverz Adding my own layouts for the Phantom and Ergodox. My Ergodox layout adds persistent layers 2016-08-09 23:49:27 -07:00
zweihander-osx Thumb ⌫ into ⇥, numpad & into :, yank home/end 2016-07-31 14:21:08 -07:00