zmk_mf68/app
Pete Johanson fc511e40cc
fix(behaviors): Fixing erroneous combo triggering, hold-taps sticking
* This is a very simple fix to a rather complicated issue. Essentially,
hold-taps will "release" (raise) their captured keys before actually
telling the event manager they have captured a key. This means the event
manager ends up assigning the `last_listener_index` to the hold-tap
subscription rather than the combo. So when the combo calls
`ZMK_EVENT_RELEASE` it raises after the hold-tap instead of after the
combo as the combo code expects.
* The corresponding test (which fails without this change) has also been added.
* An event can be captured and released in the same event handler, before
the last_listener_index would have been updated. This causes some handlers
to be triggered multiple times.
* The solution is to update the last_listener_index before calling the next
event handler, so capturing and releasing within an event handler is harmless.
* Also see discussion at https://github.com/zmkfirmware/zmk/pull/1401
* If our handler dedides our undedided hold-tap,
  return early before continuing.
* Fix incorrect pointer logic, resulting in combo
  candidate filtering leaving incorrect timeout details.

Co-authored-by: Andrew Rae <ajrae.nv@gmail.com>
Co-authored-by: okke <okke@formsma.nl>
2022-08-03 20:09:50 -04:00
..
boards feat(shields) add support for Spaceman Pancake (#1400) 2022-07-27 11:39:42 -04:00
cmake fix(build): Fix for proper string variable check. 2022-06-07 19:43:23 -04:00
drivers refactor(display): Move clear to unblank for EPD driver. 2022-07-26 14:12:38 -04:00
dts fix(behaviors): Fix mod morph description 2022-07-03 09:11:00 -04:00
include feat(behavior): Add key toggle 2022-06-03 00:04:41 -04:00
scripts chore: make west scripts more pythonic and apply Black 2022-01-04 23:59:25 -05:00
src fix(behaviors): Fixing erroneous combo triggering, hold-taps sticking 2022-08-03 20:09:50 -04:00
tests fix(behaviors): Fixing erroneous combo triggering, hold-taps sticking 2022-08-03 20:09:50 -04:00
.gitignore feat(metadata): Add YAML check/format npm scripts. 2021-09-11 00:50:36 -04:00
.prettierrc.js feat(metadata): Add YAML check/format npm scripts. 2021-09-11 00:50:36 -04:00
CMakeLists.txt refactor(build): Fixes for config/overlay loading. 2022-06-04 00:44:13 -04:00
core-coverage.yml chore: Add Hummingbiard/XIAO BLE to core coverage. 2022-06-04 00:44:13 -04:00
Kconfig feat(underglow): Add RGB auto off timeout on idle and on usb disconnect 2022-06-25 10:56:36 -04:00
package-lock.json feat(metadata): Add YAML check/format npm scripts. 2021-09-11 00:50:36 -04:00
package.json feat(metadata): Add YAML check/format npm scripts. 2021-09-11 00:50:36 -04:00
prj.conf Removed development files 2020-08-29 11:53:53 -07:00
run-test.sh refactor(tests): Use GH Actions matrix for tests. 2022-04-04 23:36:51 -04:00
west.yml fix: Don't exclude segger, needed for DKs. 2022-06-22 16:37:22 -04:00