diff options
author | Wojciech Siewierski <[email protected]> | 2016-04-03 11:14:08 +0200 |
---|---|---|
committer | Wojciech Siewierski <[email protected]> | 2016-04-03 11:23:00 +0200 |
commit | 47dd29513eeec7b7f639bef6df441a905ce8bacb (patch) | |
tree | 29170847273e786384bd3d7c7781e67dc4335bbb /tmk_core/common/action.c | |
parent | 8ef14d09b8451b3f2a77e6f019922eae0ac43642 (diff) | |
parent | 8d39263d2444f0273327902684c802b218efb7b6 (diff) | |
download | qmk_firmware-47dd29513eeec7b7f639bef6df441a905ce8bacb.tar.gz qmk_firmware-47dd29513eeec7b7f639bef6df441a905ce8bacb.zip |
Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware into modifier-release-fix
Diffstat (limited to 'tmk_core/common/action.c')
-rw-r--r-- | tmk_core/common/action.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index 78596a69cf..20e1fc6149 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c @@ -110,6 +110,9 @@ action_t store_or_get_action(bool pressed, keypos_t key) #endif } +__attribute__ ((weak)) +void process_action_kb(keyrecord_t *record) {} + void process_action(keyrecord_t *record) { keyevent_t event = record->event; @@ -119,6 +122,8 @@ void process_action(keyrecord_t *record) if (IS_NOEVENT(event)) { return; } + process_action_kb(record); + action_t action = store_or_get_action(event.pressed, event.key); dprint("ACTION: "); debug_action(action); #ifndef NO_ACTION_LAYER @@ -127,6 +132,10 @@ void process_action(keyrecord_t *record) #endif dprintln(); + if (event.pressed) { + // clear the potential weak mods left by previously pressed keys + clear_weak_mods(); + } switch (action.kind.id) { /* Key and Mods */ case ACT_LMODS: @@ -557,6 +566,7 @@ void clear_keyboard(void) void clear_keyboard_but_mods(void) { clear_weak_mods(); + clear_macro_mods(); clear_keys(); send_keyboard_report(); #ifdef MOUSEKEY_ENABLE |