Fix Mod-Tap combo regression (#20669)

* Add keyevent for combo keyrecord

* Fix formatting

* Update quantum/process_keycode/process_combo.c

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

* Add combo unit-tests and hot-fix process_record_tap_hint

...as this function tries to lookup the combo keys passed in. This will
be refactored in a later pr.

---------

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
This commit is contained in:
Pete Sevander 2023-05-10 18:59:52 +03:00 committed by GitHub
parent 6f2a1e4e17
commit 8a332e6f01
Failed to generate hash of commit
6 changed files with 97 additions and 6 deletions

View file

@ -167,8 +167,10 @@ bool process_tapping(keyrecord_t *keyp) {
// state machine is in the "reset" state, no tapping key is to be
// processed
if (IS_NOEVENT(tapping_key.event) && IS_EVENT(event)) {
if (event.pressed && is_tap_record(keyp)) {
if (IS_NOEVENT(tapping_key.event)) {
if (!IS_EVENT(event)) {
// early return for tick events
} else if (event.pressed && is_tap_record(keyp)) {
// the currently pressed key is a tapping key, therefore transition
// into the "pressed" tapping key state
ac_dprintf("Tapping: Start(Press tap key).\n");
@ -176,13 +178,13 @@ bool process_tapping(keyrecord_t *keyp) {
process_record_tap_hint(&tapping_key);
waiting_buffer_scan_tap();
debug_tapping_key();
return true;
} else {
// the current key is just a regular key, pass it on for regular
// processing
process_record(keyp);
return true;
}
return true;
}
TAP_DEFINE_KEYCODE;