summary refs log tree commit diff
path: root/quantum/process_keycode/process_auto_shift.c
diff options
context:
space:
mode:
authorprecondition <57645186+precondition@users.noreply.github.com>2022-12-13 12:20:07 +0100
committerGitHub <noreply@github.com>2022-12-13 22:20:07 +1100
commit515dd18c2801663bbac0e59f683c2a93e4bd9b1a (patch)
treea60fa641a1d5e0e3ff08fbb0a6718c8aa5280f15 /quantum/process_keycode/process_auto_shift.c
parentca13734f912e64c632daf816e700b1b176d0ac8e (diff)
Remove IGNORE_MOD_TAP_INTERRUPT_PER_KEY in favour of HOLD_ON_OTHER_KEY_PRESS_PER_KEY (#15741)
Diffstat (limited to 'quantum/process_keycode/process_auto_shift.c')
-rw-r--r--quantum/process_keycode/process_auto_shift.c41
1 files changed, 15 insertions, 26 deletions
diff --git a/quantum/process_keycode/process_auto_shift.c b/quantum/process_keycode/process_auto_shift.c
index 35d4851ee5..b7ac449198 100644
--- a/quantum/process_keycode/process_auto_shift.c
+++ b/quantum/process_keycode/process_auto_shift.c
@@ -397,8 +397,17 @@ bool process_auto_shift(uint16_t keycode, keyrecord_t *record) {
                 break;
 #    endif
         }
-        // If Retro Shift is disabled, possible custom actions shouldn't happen.
-        // clang-format off
+            // If Retro Shift is disabled, possible custom actions shouldn't happen.
+            // clang-format off
+#   if defined(RETRO_SHIFT) && !defined(NO_ACTION_TAPPING)
+#       if defined(HOLD_ON_OTHER_KEY_PRESS_PER_KEY)
+            const bool is_hold_on_interrupt = get_hold_on_other_key_press(keycode, record);
+#       elif defined(IGNORE_MOD_TAP_INTERRUPT)
+            const bool is_hold_on_interrupt = false;
+#       else
+            const bool is_hold_on_interrupt = IS_MT(keycode);
+#       endif
+#   endif
         if (IS_RETRO(keycode)
 #    if defined(RETRO_SHIFT) && !defined(NO_ACTION_TAPPING)
             // Not tapped or #defines mean that rolls should use hold action.
@@ -407,27 +416,7 @@ bool process_auto_shift(uint16_t keycode, keyrecord_t *record) {
 #        ifdef RETRO_TAPPING_PER_KEY
                 || !get_retro_tapping(keycode, record)
 #        endif
-                || (record->tap.interrupted && (IS_LT(keycode)
-#        if defined(HOLD_ON_OTHER_KEY_PRESS) || defined(HOLD_ON_OTHER_KEY_PRESS_PER_KEY)
-#            ifdef HOLD_ON_OTHER_KEY_PRESS_PER_KEY
-                    ? get_hold_on_other_key_press(keycode, record)
-#            else
-                    ? true
-#            endif
-#        else
-                    ? false
-#        endif
-#        if defined(IGNORE_MOD_TAP_INTERRUPT) || defined(IGNORE_MOD_TAP_INTERRUPT_PER_KEY)
-#            ifdef IGNORE_MOD_TAP_INTERRUPT_PER_KEY
-                    : !get_ignore_mod_tap_interrupt(keycode, record)
-#            else
-                    : false
-#            endif
-#        else
-                    : true
-#        endif
-                ))
-            )
+                || (record->tap.interrupted && is_hold_on_interrupt))
 #    endif
         ) {
             // clang-format on
@@ -454,10 +443,10 @@ bool process_auto_shift(uint16_t keycode, keyrecord_t *record) {
 #    endif
         ) {
             // Fixes modifiers not being applied to rolls with AUTO_SHIFT_MODIFIERS set.
-#    if !defined(IGNORE_MOD_TAP_INTERRUPT) || defined(IGNORE_MOD_TAP_INTERRUPT_PER_KEY)
+#    if !defined(IGNORE_MOD_TAP_INTERRUPT) || defined(HOLD_ON_OTHER_KEY_PRESS_PER_KEY)
             if (autoshift_flags.in_progress
-#        ifdef IGNORE_MOD_TAP_INTERRUPT_PER_KEY
-                && !get_ignore_mod_tap_interrupt(keycode, record)
+#        ifdef HOLD_ON_OTHER_KEY_PRESS_PER_KEY
+                && get_hold_on_other_key_press(keycode, record)
 #        endif
             ) {
                 autoshift_end(KC_NO, now, false, &autoshift_lastrecord);