mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-12-27 11:38:58 +06:00
38f204db30
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> |
||
---|---|---|
.. | ||
avr | ||
chibios | ||
mbed | ||
test | ||
action_code.h | ||
action_layer.c | ||
action_layer.h | ||
action_macro.c | ||
action_macro.h | ||
action_tapping.c | ||
action_tapping.h | ||
action_util.c | ||
action_util.h | ||
action.c | ||
action.h | ||
backlight.c | ||
backlight.h | ||
bootloader.h | ||
bootmagic.c | ||
bootmagic.h | ||
command.c | ||
command.h | ||
debug.c | ||
debug.h | ||
eeconfig.c | ||
eeconfig.h | ||
eeprom.h | ||
host_driver.h | ||
host.c | ||
host.h | ||
keyboard.c | ||
keyboard.h | ||
keycode.h | ||
led.h | ||
magic.c | ||
magic.h | ||
matrix.h | ||
mousekey.c | ||
mousekey.h | ||
nodebug.h | ||
print.c | ||
print.h | ||
progmem.h | ||
raw_hid.h | ||
report.c | ||
report.h | ||
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 |