summaryrefslogtreecommitdiff
path: root/tmk_core/common/action.c
diff options
context:
space:
mode:
authorWojciech Siewierski <wojciech.siewierski@onet.pl>2016-04-03 11:14:08 +0200
committerWojciech Siewierski <wojciech.siewierski@onet.pl>2016-04-03 11:23:00 +0200
commit47dd29513eeec7b7f639bef6df441a905ce8bacb (patch)
tree29170847273e786384bd3d7c7781e67dc4335bbb /tmk_core/common/action.c
parent8ef14d09b8451b3f2a77e6f019922eae0ac43642 (diff)
parent8d39263d2444f0273327902684c802b218efb7b6 (diff)
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.c10
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