keychron_qmk_firmware/tmk_core/common
Gergely Nagy 38f204db30 Allow one-shot modifiers to be chained
Many a times one would want to use multiple modifiers with the same key,
preferably without having to hold anything, like `Ctrl+Shift+C` or
`Ctrl+Shift+V` to copy/paste in GNOME Terminal. To make this possible, we need
to be able to chain one-shot modifiers, so that we can have multiple of them
active at the same time.

The easiest way to accomplish this is that whenever we activate a one-shot
modifier, we apply it on top of the existing set, instead of re-setting the
state. When deactivating, either due to an interrupt, or due to a timeout, we
deactivate all oneshots anyway, so the clearing part is covered. When we turn
the one-shot modifier into a toggle, that will also clear all one-shot modifiers
first, so we covered that case too.

Fixes #2796, #1580, and #856.

Signed-off-by: Gergely Nagy <qmk@gergo.csillger.hu>
2018-05-14 10:09:28 -04:00
..
avr Fix RGB Sleep code 2018-03-28 15:37:00 -04:00
chibios Generate API docs from source code comments (#2491) 2018-03-22 02:50:38 -04:00
mbed
test Add wait support for tests 2017-07-08 21:59:51 -04:00
action_code.h Generate API docs from source code comments (#2491) 2018-03-22 02:50:38 -04:00
action_layer.c Generate API docs from source code comments (#2491) 2018-03-22 02:50:38 -04:00
action_layer.h make 'layer_state_set' visible to user code 2017-12-15 13:23:30 -05:00
action_macro.c Generate API docs from source code comments (#2491) 2018-03-22 02:50:38 -04:00
action_macro.h
action_tapping.c Generate API docs from source code comments (#2491) 2018-03-22 02:50:38 -04:00
action_tapping.h RETRO_TAPPING (#1922) 2017-10-31 11:15:22 -04:00
action_util.c Generate API docs from source code comments (#2491) 2018-03-22 02:50:38 -04:00
action_util.h
action.c Allow one-shot modifiers to be chained 2018-05-14 10:09:28 -04:00
action.h Fix swap-hands tapping. 2018-03-16 16:33:43 -04:00
backlight.c Generate API docs from source code comments (#2491) 2018-03-22 02:50:38 -04:00
backlight.h
bootloader.h
bootmagic.c Generate API docs from source code comments (#2491) 2018-03-22 02:50:38 -04:00
bootmagic.h Generate API docs from source code comments (#2491) 2018-03-22 02:50:38 -04:00
command.c
command.h Generate API docs from source code comments (#2491) 2018-03-22 02:50:38 -04:00
debug.c
debug.h
eeconfig.c enable eeprom for rgb matrix 2018-05-08 18:13:09 -04:00
eeconfig.h Added "EECONFIG_HANDEDNESS" to the eeconfig.h , because when RGB was enabled it was overwritting the old EECONFIG_HANDEDNESS address (10), so it is now on a non-conflicting addres (14). 2017-08-13 14:24:04 -04:00
eeprom.h
host_driver.h Merge ChibiOS and LUFA descriptor support (#2362) 2018-02-08 15:07:46 -05:00
host.c
host.h
keyboard.c Generate API docs from source code comments (#2491) 2018-03-22 02:50:38 -04:00
keyboard.h
keycode.h Generate API docs from source code comments (#2491) 2018-03-22 02:50:38 -04:00
led.h Generate API docs from source code comments (#2491) 2018-03-22 02:50:38 -04:00
magic.c Generate API docs from source code comments (#2491) 2018-03-22 02:50:38 -04:00
magic.h
matrix.h
mousekey.c Remove floating point calculation in mouse move. Saves approx 650 bytes if no other floating point used. 2017-08-15 19:51:06 -04:00
mousekey.h
nodebug.h
print.c
print.h
progmem.h add pgm_read_dword for Infinity ErgoDox 2017-11-06 12:09:54 -05:00
raw_hid.h
report.c Generate API docs from source code comments (#2491) 2018-03-22 02:50:38 -04:00
report.h Merge ChibiOS and LUFA descriptor support (#2362) 2018-02-08 15:07:46 -05:00
sendchar_null.c
sendchar_uart.c
sendchar.h
sleep_led.h
suspend.h
timer.h
uart.c
uart.h
util.c
util.h
virtser.h
wait.h Revert back to normal sleeping wait behaviour for STM32 2018-01-21 01:10:16 -08:00