Michael Richters
9ac4cc5a6f
Clear masked keys on release in `Runtime.handleKeyswitchEvent()`
...
This fixes a problem with a plugin that returns `ABORT` from its
`onKeyswitchEvent()` handler, for a masked key addr. I'm convinced that a
better solution is to switch from using `Key_NoKey` (a.k.a. `Key_Masked`) to
using `Key_Transparent` as the default for new events, and thus, the value that
signals that a lookup should be done, but this at least fixes the bug for now,
with a much less intrusive change.
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
5ddd7d1867
Add testcase for issue #1042
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
904083806f
Add missing checks for new OneShot key ranges
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
f039b375de
Add SpaceCadet "no-delay" mode to NEWS.md
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
03ebc96348
Add documentation for SpaceCadet "no-delay" mode
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
68d5fa80d1
Add testcases for SpaceCadet in "no-delay" mode
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
2faa7c00a9
Add a "no-delay" mode to SpaceCadet
...
SpaceCadet now has three "modes": on, off, and on with no delay. In "no-delay"
mode, when a SpaceCadet key is pressed, its primary (modifier) key value is sent
immediately to the host, and if it is released before timing out, that value is
then replaced by the configured "tap" value of the key.
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
768c95ae46
Make SpaceCadet public mode functions inline
...
Moving these one-liners to the header file lets them be inlined by client code.
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
b0ea789f28
Change `SpaceCadet::disabled` to `SpaceCadet::mode_`
...
Switch from `bool` to `enum` in preparation for a third mode of SpaceCadet
functionality, where the modifier becomes active immediately when the key is
pressed, rather than waiting for the key to resolve into the "hold" or "tap"
state.
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Jesse Vincent
cf826188a4
Merge pull request #1030 from gedankenexperimenter/timeout-check-fix
4 years ago
Jesse Vincent
290103d533
Merge pull request #1034 from gedankenexperimenter/tests/issues-fixed-by-1024
4 years ago
Jesse Vincent
d06132276f
Merge pull request #1038 from gedankenexperimenter/testing/no-report-without-comment
4 years ago
Michael Richters
86cc2c66a7
Suppress warnings when expecting no report without comment
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
ed3b9205c5
Remove timeout padding from existing testcases
...
Now that the timeout checker has been fixed, we need to remove the extra 1
millisecond from testcases that verify timeouts.
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
18a8e728f2
Fix timeout checker
...
`Runtime.hasTimeExpired()` had a minor flaw. Because it was comparing two values
using `>` instead of `>=`, it meant that a timeout set at 20ms wouldn't actually
time out until 21ms elapsed.
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
c60dd9526d
Add testcase for issue #673
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
1416bdb4c8
Add testcase for issue #571
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
5b45092221
Add SpaceCadet testcase for issue #484
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
b84d82bdb1
Add Leader testcases, including for issue #407
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Gergely Nagy
3a8eb5d839
Merge pull request #1024 from gedankenexperimenter/key-event-handler
...
New `KeyEvent` handlers and main event loop rewrite
4 years ago
Michael Richters
6bdcd01080
Add glossary entries for LiveKeys special values
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
17045d9294
Make ActiveModColor work if registered ahead of OneShot
...
If `ActiveModColorEffect` was registered ahead of `OneShot` in
`KALEIDOSCOPE_INIT_PLUGINS()`, `OSM()` and `OSL()` keys would light up in the
OneShot "sticky" state, not in the "held" or "one-shot" states. This happened
because OneShot changes the `event.key` value to the corresponding base
key (modifier or layer shift), but if ActiveModColor had already processed that
key event, it wouldn't recognize the key as a modifier/layer shift key, and
would therefore ignore it.
This change makes ActiveModColor also recognize OneShot keys as modifier/layer
shift keys.
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
60567d3d50
Begin updates to UPGRADING document for KeyEvent API changes
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
2f7fbaa3fe
Add overview documentation of event handler hook functions
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
0a5fff5005
Update example sketches' `macroAction()` functions to KeyEvent
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
c81fd4a584
Add Macros plugin example sketch
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
67bf76a99a
Simplify and standardize some testcases
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
cc8bd39c43
Add testcases for WinKeyToggle
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
f136912015
Add testcases for Turbo plugin
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
206d0681c8
Add testcases for Leader plugin
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
e101121eec
Add testcases for SpaceCadet plugin
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
5d69eca65d
Update testcase for issue 978
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
b0478b43d8
Update testcases for MagicCombo plugin
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
f7b7799756
Update testcases for TapDance plugin
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
d2cb078604
Update testcases for OneShot plugin
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
fb95769250
Update testcases for Qukeys plugin
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
ba65bf46d2
Update testcases for TopsyTurvy plugin
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
836e4af8ae
Update testcases for Macros plugin
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
78ec964b09
Update testcases: events/keyboard-state/macros
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
c1e64d0a60
Update testcases: examples/basic-keypress
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
f13e08c77a
Update testcases: events/keyboard-state/release-cleared
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
a2f720e365
Add testcases for rollover conditions on Keyboard HID keys
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
2073c4f855
Adapt miscellaneous LED mode plugins to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
889b664a4a
Adapt LED-ActiveModColor plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
a734d6d8b4
Adapt IdleLEDs plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
352fa3fb70
Adapt Kaleidoscope-Hardware-EZ-ErgoDox to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
3ddd12ea04
Adapt FocusSerial plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
1ff9bb81c2
Adapt Escape-OneShot plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
48e1130dce
Adapt EEPROM-Keymap-Programmer plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
d7a71f92ba
Adapt Cycle plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago