summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPete Johanson <peter@peterjohanson.com>2021-01-06 00:15:48 -0500
committerPete Johanson <peter@peterjohanson.com>2021-01-15 13:50:36 -0500
commitc11759bc795239c38c36ecd78d6408662aa77f54 (patch)
tree9e19f0635f63898a08e227ecf2f8367cebe39521
parenta0c32bb47e3827f08096247e3bfecb82a8ed8e7d (diff)
fix(hid): Clear all matching usages, not just first.
* If various events get dropped, we can end up with duplicate codes in our report, so tweak to ensure we look for all matches and clear them when we have a keycode released.
-rw-r--r--app/src/hid.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/app/src/hid.c b/app/src/hid.c
index 37378b4..b9ddfc5 100644
--- a/app/src/hid.c
+++ b/app/src/hid.c
@@ -55,7 +55,9 @@ int zmk_hid_unregister_mod(zmk_mod_t modifier) {
continue; \
} \
keyboard_report.body.keys[idx] = val; \
- break; \
+ if (val) { \
+ break; \
+ } \
}
#define TOGGLE_CONSUMER(match, val) \
@@ -64,7 +66,9 @@ int zmk_hid_unregister_mod(zmk_mod_t modifier) {
continue; \
} \
consumer_report.body.keys[idx] = val; \
- break; \
+ if (val) { \
+ break; \
+ } \
}
int zmk_hid_implicit_modifiers_press(zmk_mod_flags_t implicit_modifiers) {