qmk-dactyl-manuform-a/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 Added User Print - A "light" console out option (#8) 2016-09-07 23:50:58 -05:00
test Add wait support for tests 2017-07-08 21:59:51 -04:00
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
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 Add support for various tapping macros 2017-01-28 18:42:35 +11:00
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 Move functions for adding keys from to reports to report.h 2017-06-18 21:22:22 +03:00
backlight.c Generate API docs from source code comments (#2491) 2018-03-22 02:50:38 -04:00
backlight.h Backlight Breathing for Planck and Atomic 2016-05-09 13:17:15 -04:00
bootloader.h Merge commit 'a074364c3731d66b56d988c8a6c960a83ea0e0a1' as 'tmk_core' 2015-04-10 01:32:04 +09:00
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 Simplified and polished a bit the code changes on tmk_core 2017-01-21 17:18:05 -05:00
command.h Generate API docs from source code comments (#2491) 2018-03-22 02:50:38 -04:00
debug.c Merge commit 'a074364c3731d66b56d988c8a6c960a83ea0e0a1' as 'tmk_core' 2015-04-10 01:32:04 +09:00
debug.h Merge commit 'a074364c3731d66b56d988c8a6c960a83ea0e0a1' as 'tmk_core' 2015-04-10 01:32:04 +09:00
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 Emulate eeprom 2017-06-18 21:10:42 +03:00
host.c Use keyboard config for nkro (#7) 2016-09-06 23:19:01 -05:00
host.h Use keyboard config for nkro (#7) 2016-09-06 23:19:01 -05:00
host_driver.h Merge ChibiOS and LUFA descriptor support (#2362) 2018-02-08 15:07:46 -05:00
keyboard.c Generate API docs from source code comments (#2491) 2018-03-22 02:50:38 -04:00
keyboard.h improvements 2017-05-13 13:19:28 -07:00
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 MAGIC functionality, AG swap in default layout 2016-04-16 18:51:58 -04:00
matrix.h Minor cleanup 2017-02-05 19:55:27 -05:00
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 Make MOUSEKEY_MOVE_MAX and MOUSEKEY_WHEEL_MAX configurable 2017-04-13 16:00:29 +03:00
nodebug.h Backlight Breathing for Planck and Atomic 2016-05-09 13:17:15 -04:00
print.c Add ChibiOS support for QMK (#465) 2016-07-01 10:04:53 -04:00
print.h Added User Print - A "light" console out option (#8) 2016-09-07 23:50:58 -05:00
progmem.h add pgm_read_dword for Infinity ErgoDox 2017-11-06 12:09:54 -05:00
raw_hid.h Initial version of Raw HID interface 2016-12-01 00:44:54 +11:00
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.h Merge commit 'a074364c3731d66b56d988c8a6c960a83ea0e0a1' as 'tmk_core' 2015-04-10 01:32:04 +09:00
sendchar_null.c Merge commit 'a074364c3731d66b56d988c8a6c960a83ea0e0a1' as 'tmk_core' 2015-04-10 01:32:04 +09:00
sendchar_uart.c Merge commit 'a074364c3731d66b56d988c8a6c960a83ea0e0a1' as 'tmk_core' 2015-04-10 01:32:04 +09:00
sleep_led.h Merge commit 'a074364c3731d66b56d988c8a6c960a83ea0e0a1' as 'tmk_core' 2015-04-10 01:32:04 +09:00
suspend.h Merge commit 'a074364c3731d66b56d988c8a6c960a83ea0e0a1' as 'tmk_core' 2015-04-10 01:32:04 +09:00
timer.h Merge commit 'a074364c3731d66b56d988c8a6c960a83ea0e0a1' as 'tmk_core' 2015-04-10 01:32:04 +09:00
uart.c Merge commit 'a074364c3731d66b56d988c8a6c960a83ea0e0a1' as 'tmk_core' 2015-04-10 01:32:04 +09:00
uart.h Merge commit 'a074364c3731d66b56d988c8a6c960a83ea0e0a1' as 'tmk_core' 2015-04-10 01:32:04 +09:00
util.c Merge commit 'a074364c3731d66b56d988c8a6c960a83ea0e0a1' as 'tmk_core' 2015-04-10 01:32:04 +09:00
util.h Merge commit 'a074364c3731d66b56d988c8a6c960a83ea0e0a1' as 'tmk_core' 2015-04-10 01:32:04 +09:00
virtser.h Added USB Virtual Serial support 2016-08-23 04:16:35 +00:00
wait.h Revert back to normal sleeping wait behaviour for STM32 2018-01-21 01:10:16 -08:00