Browse Source

Mask out active mods when unregistering after retro tapping (#26127)

Do not unregister modifiers still held by other keys
フィルターペーパー 2 months ago
parent
commit
d19204824d
1 changed files with 3 additions and 1 deletions
  1. 3 1
      quantum/action.c

+ 3 - 1
quantum/action.c

@@ -879,7 +879,9 @@ void process_action(keyrecord_t *record, action_t action) {
                     wait_ms(TAP_CODE_DELAY);
                     tap_code(action.layer_tap.code);
                     wait_ms(TAP_CODE_DELAY);
-                    unregister_mods(retro_tap_curr_mods);
+                    // Only unregister the mods that were active at the time of
+                    // the tap and are not independently held by other keys.
+                    unregister_mods(retro_tap_curr_mods & ~curr_mods);
 #        endif
                 }
                 retro_tap_primed = false;