qmk-firmware/quantum
Felix Kuehling 4ae7525923
Bug17281 - Retain momentary layers until the end of tapping (#17282)
* Make process_tapping more readable

Move most #ifdefs into conditionally defined macros to make the logic
easier to follow.

* Retain momentary layers until the end of tapping

This allows mod-tap and layer-tap keys on layers to behave as expected.

Bug: https://github.com/qmk/qmk_firmware/issues/17281

* Add tests for delayed mod/layer release while tapping

Mods and layer key release is delayed while tapping is in progress to
ensure that the tap is registered with the modifier state and on the
layer where the key was first pressed.

Signed-off-by: Felix Kuehling <felix.kuehling@gmail.com>
2022-11-28 09:16:38 +01:00
..
audio In honor of king terry (#17387) 2022-06-23 02:47:15 +01:00
backlight [Core] PWM Backlight for RP2040 (#17706) 2022-10-04 23:10:24 +02:00
bootmagic Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
debounce Make debounce() signal changes in the cooked matrix as return value (#17554) 2022-07-07 10:00:40 +02:00
encoder/tests Only trigger encoder callbacks on primary side (#18467) 2022-11-14 02:51:19 +11:00
keymap_extras Relocate US ANSI shifted keycode aliases (#18634) 2022-10-07 23:36:38 +01:00
led_matrix Change LED_MATRIX_STARTUP_* defines to LED_MATRIX_DEFAULT_* (#19080) 2022-11-27 03:14:35 +11:00
logging [Fix] Patches after printf library update (#17584) 2022-07-07 14:14:09 +02:00
painter [QP] Add RGB565 surface. Docs clarification, cleanup, tabsification, and reordering. (#18396) 2022-09-19 07:30:08 +10:00
pointing_device Fix jump in report value when scale changes during cirque get report (#18992) 2022-11-09 09:48:46 -08:00
process_keycode Align haptic feedback keycode names (#18964) 2022-11-07 02:43:53 +00:00
rgb_matrix Change RGB_MATRIX_STARTUP_* defines to RGB_MATRIX_DEFAULT_* (#19079) 2022-11-27 04:18:24 +11:00
rgblight Avoid repeated calls to rgblight_set() in tight succession when setting lighting layers (#18338) 2022-11-10 20:27:40 +11:00
send_string Reduce includes for send_string header (#18952) 2022-11-05 21:45:40 +11:00
sequencer Normalise MIDI keycodes (#18972) 2022-11-07 02:26:15 +00:00
split_common Implement split comms watchdog (#18599) 2022-10-06 20:52:42 +11:00
unicode Normalise Unicode keycodes (#18898) 2022-10-31 21:15:12 +00:00
wear_leveling RP2040 emulated EEPROM. (#17519) 2022-07-02 15:18:50 +10:00
action_code.h Initial DD keycode migration (#18643) 2022-11-05 10:30:09 +00:00
action_layer.c Don't clear keys on layer change unless STRICT_LAYER_RELEASE is enabled (#18577) 2022-11-12 02:11:50 +00:00
action_layer.h Make default layer size 16-bit (#15286) 2022-06-19 07:37:51 +10:00
action_tapping.c Bug17281 - Retain momentary layers until the end of tapping (#17282) 2022-11-28 09:16:38 +01:00
action_tapping.h Add missing prototype for get_hold_on_other_key_press to resolve #18855 (#19056) 2022-11-14 03:34:59 +11:00
action_util.c Fix oneshot toggle logic (#16630) 2022-03-14 01:11:42 +00:00
action_util.h Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
action.c Programmable Button API refactor and improve docs (#18641) 2022-10-15 14:33:24 +11:00
action.h [Bug] Add key event check to is_tap_record and remove is_tap_key (#18063) 2022-08-15 16:40:51 +02:00
bitwise.c Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
bitwise.h Migrate some tmk_core files to quantum (#11791) 2021-02-07 23:16:15 +00:00
caps_word.c Reduce includes for caps_word header (#18948) 2022-11-03 23:42:58 +00:00
caps_word.h Reduce includes for caps_word header (#18948) 2022-11-03 23:42:58 +00:00
color.c Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
color.h fixed typo in orange HSV colors decalartion (#15976) 2022-01-22 06:12:14 +00:00
command.c [Fix] Patches after printf library update (#17584) 2022-07-07 14:14:09 +02:00
command.h Remove legacy keycode use from command (#18002) 2022-08-12 03:03:36 +01:00
config_common.h Remove quantum/audio from global VPATH (#18753) 2022-10-20 14:41:45 +01:00
crc.c Reduce includes for crc header (#18947) 2022-11-03 21:36:58 +00:00
crc.h Reduce includes for crc header (#18947) 2022-11-03 21:36:58 +00:00
debounce.h Make debounce() signal changes in the cooked matrix as return value (#17554) 2022-07-07 10:00:40 +02:00
deferred_exec.c Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
deferred_exec.h Advanced deferred_exec for core-side code. (#15579) 2022-01-10 18:26:46 +00:00
digitizer.c Digitizer feature improvements (#19034) 2022-11-12 23:28:11 +00:00
digitizer.h Digitizer feature improvements (#19034) 2022-11-12 23:28:11 +00:00
dip_switch.c Reduce includes for dip_switch header (#18951) 2022-11-04 11:54:35 +00:00
dip_switch.h Reduce includes for dip_switch header (#18951) 2022-11-04 11:54:35 +00:00
dynamic_keymap.c VIA V3 - The Custom UI Update (#18222) 2022-11-10 07:46:44 +11:00
dynamic_keymap.h VIA V3 - The Custom UI Update (#18222) 2022-11-10 07:46:44 +11:00
dynamic_macro.h Normalise Dynamic Macro keycodes (#18939) 2022-11-03 23:01:06 +00:00
eeconfig.c Extend eeconfig kb/user datablock API (#19094) 2022-11-16 18:06:49 +11:00
eeconfig.h Extend eeconfig kb/user datablock API (#19094) 2022-11-16 18:06:49 +11:00
encoder.c Only trigger encoder callbacks on primary side (#18467) 2022-11-14 02:51:19 +11:00
encoder.h Use a macro to compute the size of arrays at compile time (#18044) 2022-08-30 10:20:04 +02:00
haptic.c [Feature] Add support for multiple switchs/solenoids to Haptic Feedback engine (#15657) 2022-05-15 21:24:35 +10:00
haptic.h haptic: Feature to disable it when usb port is not configured or suspended. (#12692) 2021-11-02 16:54:29 +11:00
joystick.c Joystick feature improvements (#19052) 2022-11-27 03:14:45 +11:00
joystick.h Joystick feature improvements (#19052) 2022-11-27 03:14:45 +11:00
keyboard.c Fix encoder_init call order in keyboard_init (#19140) 2022-11-27 10:07:35 +11:00
keyboard.h [Core] Process all changed keys in one scan loop, deprecate QMK_KEYS_PER_SCAN (#15292) 2022-08-06 20:51:13 +10:00
keycode_config.c PoC: Swap Escape and Caps (#16336) 2022-07-02 22:08:48 +10:00
keycode_config.h [Core] Add getreuer's Autocorrect feature to core (#15699) 2022-09-17 17:50:54 +10:00
keycode.h Initial DD keycode migration (#18643) 2022-11-05 10:30:09 +00:00
keycodes.h Normalise output selection (Bluetooth) keycodes (#19004) 2022-11-08 19:03:31 +00:00
keymap_common.c Fix keycode parameter extraction to match the new DD keycodes (#18977) 2022-11-06 21:39:05 +00:00
keymap_introspection.c Start moving towards introspection-based data retrieval (#18441) 2022-09-29 18:25:55 +01:00
keymap_introspection.h Start moving towards introspection-based data retrieval (#18441) 2022-09-29 18:25:55 +01:00
keymap.h Start moving towards introspection-based data retrieval (#18441) 2022-09-29 18:25:55 +01:00
led_tables.c Remove unused LED_BREATHING_TABLE 2020-03-06 22:29:01 -08:00
led_tables.h Change include guards in quantum/ to pragma once (#11239) 2020-12-26 15:53:12 +11:00
led.c quantum: led: split out led_update_ports() for customization of led behaviour (#14452) 2022-10-06 21:24:41 +11:00
led.h quantum: led: split out led_update_ports() for customization of led behaviour (#14452) 2022-10-06 21:24:41 +11:00
main.c Quantum Painter (#10174) 2022-04-13 18:00:18 +10:00
matrix_common.c Merge remote-tracking branch 'origin/master' into develop 2022-08-07 19:33:39 +00:00
matrix.c Make debounce() signal changes in the cooked matrix as return value (#17554) 2022-07-07 10:00:40 +02:00
matrix.h Custom matrix lite support for split keyboards (#14674) 2021-12-27 21:03:40 +11:00
mousekey.c fixed MOUSEKEY_INERTIA on AVR (#19096) 2022-11-16 13:46:11 -08:00
mousekey.h add "inertia" mode for mouse keys (#18774) 2022-10-26 20:49:44 +01:00
pointing_device_internal.h [Core] Introduce pointing device specific debug messages (#17663) 2022-08-29 19:16:49 +02:00
programmable_button.c Programmable Button API refactor and improve docs (#18641) 2022-10-15 14:33:24 +11:00
programmable_button.h Programmable Button API refactor and improve docs (#18641) 2022-10-15 14:33:24 +11:00
quantum_keycodes_legacy.h Align haptic feedback keycode names (#18964) 2022-11-07 02:43:53 +00:00
quantum_keycodes.h Normalise MIDI keycodes (#18972) 2022-11-07 02:26:15 +00:00
quantum.c Normalise output selection (Bluetooth) keycodes (#19004) 2022-11-08 19:03:31 +00:00
quantum.h Digitizer feature improvements (#19034) 2022-11-12 23:28:11 +00:00
raw_hid.h Relocate protocol files within tmk_core/common/ (#14972) 2021-10-28 22:31:59 +01:00
ring_buffer.h Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
secure.c Use a macro to compute the size of arrays at compile time (#18044) 2022-08-30 10:20:04 +02:00
secure.h Enhancement and fixes of "Secure" feature (#16958) 2022-05-14 23:07:08 +01:00
sync_timer.c Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
sync_timer.h Relocate protocol files within tmk_core/common/ (#14972) 2021-10-28 22:31:59 +01:00
util.h Use a macro to compute the size of arrays at compile time (#18044) 2022-08-30 10:20:04 +02:00
variable_trace.c clang-format changes 2019-08-30 15:01:52 -07:00
variable_trace.h Change include guards in quantum/ to pragma once (#11239) 2020-12-26 15:53:12 +11:00
velocikey.c Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
velocikey.h Change include guards in quantum/ to pragma once (#11239) 2020-12-26 15:53:12 +11:00
via.c VIA V3 - The Custom UI Update (#18222) 2022-11-10 07:46:44 +11:00
via.h VIA V3 - The Custom UI Update (#18222) 2022-11-10 07:46:44 +11:00
virtser.h Relocate protocol files within tmk_core/common/ (#14972) 2021-10-28 22:31:59 +01:00
wpm.c [Bug] Fix compilation issue with WPM (#18965) 2022-11-05 19:05:01 +00:00
wpm.h Reduce includes for wpm header (#18949) 2022-11-04 00:50:59 +00:00