~ruther/qmk_firmware

1f6dfd19cf93b365c6ad5227d2a8a054ff30cc24 — Paul Landers 1 year, 4 months ago 8b48f0d
Ignore space cadet key release when caps word is active (#21721)

M quantum/process_keycode/process_caps_word.c => quantum/process_keycode/process_caps_word.c +4 -0
@@ 14,6 14,7 @@

#include "process_caps_word.h"
#include "process_auto_shift.h"
#include "process_space_cadet.h"
#include "caps_word.h"
#include "keycodes.h"
#include "quantum_keycodes.h"


@@ 110,6 111,9 @@ bool process_caps_word(uint16_t keycode, keyrecord_t* record) {
#        endif // COMMAND_ENABLE
        ) {
            caps_word_on();
#        ifdef SPACE_CADET_ENABLE
            reset_space_cadet();
#        endif // SPACE_CADET_ENABLE
        }
#    endif     // defined(COMMAND_ENABLE) && !defined(IS_COMMAND)
#endif         // BOTH_SHIFTS_TURNS_ON_CAPS_WORD

M quantum/process_keycode/process_space_cadet.c => quantum/process_keycode/process_space_cadet.c +5 -1
@@ 157,10 157,14 @@ bool process_space_cadet(uint16_t keycode, keyrecord_t *record) {
        }
        default: {
            if (record->event.pressed) {
                sc_last = 0;
                reset_space_cadet();
            }
            break;
        }
    }
    return true;
}

void reset_space_cadet() {
    sc_last = 0;
}

M quantum/process_keycode/process_space_cadet.h => quantum/process_keycode/process_space_cadet.h +1 -0
@@ 21,3 21,4 @@

void perform_space_cadet(keyrecord_t *record, uint16_t sc_keycode, uint8_t holdMod, uint8_t tapMod, uint8_t keycode);
bool process_space_cadet(uint16_t keycode, keyrecord_t *record);
void reset_space_cadet(void);

M tests/caps_word/test_caps_word.cpp => tests/caps_word/test_caps_word.cpp +3 -3
@@ 423,8 423,8 @@ TEST_P(CapsWordBothShifts, PressLRLR) {
    run_one_scan_loop();
    right_shift.press();

    // For mod-tap and Space Cadet keys, wait for the tapping term.
    if (left_shift.code == LSFT_T(KC_A) || left_shift.code == QK_SPACE_CADET_LEFT_SHIFT_PARENTHESIS_OPEN) {
    // For mod-tap, wait for the tapping term.
    if (left_shift.code == LSFT_T(KC_A)) {
        idle_for(TAPPING_TERM);
    }



@@ 461,7 461,7 @@ TEST_P(CapsWordBothShifts, PressLRRL) {
    run_one_scan_loop();
    right_shift.press();

    if (left_shift.code == LSFT_T(KC_A) || left_shift.code == QK_SPACE_CADET_LEFT_SHIFT_PARENTHESIS_OPEN) {
    if (left_shift.code == LSFT_T(KC_A)) {
        idle_for(TAPPING_TERM);
    }
    run_one_scan_loop();

Do not follow this link