From c7b56bee96b17a84a3de372117394b62191e22ce Mon Sep 17 00:00:00 2001
From: Drashna Jaelre <drashna@live.com>
Date: Sat, 8 Aug 2020 16:41:10 -0700
Subject: [PATCH] [Bug] Fix Swap Hands bug introduced by OSH (#9968)

Fixes the handling for the oneshot cleanup, so it only cleans up if it is active.  It should not cleanup of SHO is off (eg using a normal oneshot key), nor if it's actively pressed or used.

Previous behavior BROKE swap hand key.
---
 tmk_core/common/action_util.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tmk_core/common/action_util.c b/tmk_core/common/action_util.c
index 371acfa610..fd0e4409f0 100644
--- a/tmk_core/common/action_util.c
+++ b/tmk_core/common/action_util.c
@@ -97,7 +97,7 @@ static uint16_t oneshot_layer_time = 0;
 inline bool     has_oneshot_layer_timed_out() { return TIMER_DIFF_16(timer_read(), oneshot_layer_time) >= ONESHOT_TIMEOUT && !(get_oneshot_layer_state() & ONESHOT_TOGGLED); }
 #        ifdef SWAP_HANDS_ENABLE
 static uint16_t oneshot_swaphands_time = 0;
-inline bool     has_oneshot_swaphands_timed_out() { return TIMER_DIFF_16(timer_read(), oneshot_swaphands_time) >= ONESHOT_TIMEOUT && !(swap_hands_oneshot >= SHO_PRESSED); }
+inline bool     has_oneshot_swaphands_timed_out() { return TIMER_DIFF_16(timer_read(), oneshot_swaphands_time) >= ONESHOT_TIMEOUT && (swap_hands_oneshot == SHO_ACTIVE); }
 #        endif
 #    endif