From 765d8a33ddb46ae25314189b80f6ba04136ec808 Mon Sep 17 00:00:00 2001
From: Isaac Elenbaas <isaacelenbaas@gmail.com>
Date: Sat, 27 Feb 2021 23:48:19 -0500
Subject: [PATCH] Fixes #4072, #6214. Revision of #156 to clear before AS/TD.
 (#9941)

---
 tmk_core/common/action.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c
index f53e3c7084..aae5cbfa5f 100644
--- a/tmk_core/common/action.c
+++ b/tmk_core/common/action.c
@@ -76,6 +76,11 @@ void action_exec(keyevent_t event) {
 #endif
     }
 
+    if (event.pressed) {
+        // clear the potential weak mods left by previously pressed keys
+        clear_weak_mods();
+    }
+
 #ifdef SWAP_HANDS_ENABLE
     if (!IS_NOEVENT(event)) {
         process_hand_swap(&event);
@@ -237,11 +242,6 @@ void process_action(keyrecord_t *record, action_t action) {
     uint8_t tap_count = record->tap.count;
 #endif
 
-    if (event.pressed) {
-        // clear the potential weak mods left by previously pressed keys
-        clear_weak_mods();
-    }
-
 #ifndef NO_ACTION_ONESHOT
     bool do_release_oneshot = false;
     // notice we only clear the one shot layer if the pressed key is not a modifier.