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
action.c Allow one-shot modifiers to be chained 2018-05-14 10:09:28 -04:00
action.h
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
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
action_util.c Generate API docs from source code comments (#2491) 2018-03-22 02:50:38 -04:00
action_util.h
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
eeprom.h
host.c
host.h
host_driver.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
mousekey.h
nodebug.h
print.c
print.h
progmem.h
raw_hid.h
report.c Generate API docs from source code comments (#2491) 2018-03-22 02:50:38 -04:00
report.h
sendchar.h
sendchar_null.c
sendchar_uart.c
sleep_led.h
suspend.h
timer.h
uart.c
uart.h
util.c
util.h
virtser.h
wait.h