forked from mirrors/qmk_firmware
Ignore space cadet key release when caps word is active (#21721)
This commit is contained in:
parent
8b48f0dea3
commit
1f6dfd19cf
4 changed files with 13 additions and 4 deletions
|
@ -14,6 +14,7 @@
|
||||||
|
|
||||||
#include "process_caps_word.h"
|
#include "process_caps_word.h"
|
||||||
#include "process_auto_shift.h"
|
#include "process_auto_shift.h"
|
||||||
|
#include "process_space_cadet.h"
|
||||||
#include "caps_word.h"
|
#include "caps_word.h"
|
||||||
#include "keycodes.h"
|
#include "keycodes.h"
|
||||||
#include "quantum_keycodes.h"
|
#include "quantum_keycodes.h"
|
||||||
|
@ -110,6 +111,9 @@ bool process_caps_word(uint16_t keycode, keyrecord_t* record) {
|
||||||
# endif // COMMAND_ENABLE
|
# endif // COMMAND_ENABLE
|
||||||
) {
|
) {
|
||||||
caps_word_on();
|
caps_word_on();
|
||||||
|
# ifdef SPACE_CADET_ENABLE
|
||||||
|
reset_space_cadet();
|
||||||
|
# endif // SPACE_CADET_ENABLE
|
||||||
}
|
}
|
||||||
# endif // defined(COMMAND_ENABLE) && !defined(IS_COMMAND)
|
# endif // defined(COMMAND_ENABLE) && !defined(IS_COMMAND)
|
||||||
#endif // BOTH_SHIFTS_TURNS_ON_CAPS_WORD
|
#endif // BOTH_SHIFTS_TURNS_ON_CAPS_WORD
|
||||||
|
|
|
@ -157,10 +157,14 @@ bool process_space_cadet(uint16_t keycode, keyrecord_t *record) {
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
sc_last = 0;
|
reset_space_cadet();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void reset_space_cadet() {
|
||||||
|
sc_last = 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);
|
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);
|
bool process_space_cadet(uint16_t keycode, keyrecord_t *record);
|
||||||
|
void reset_space_cadet(void);
|
||||||
|
|
|
@ -423,8 +423,8 @@ TEST_P(CapsWordBothShifts, PressLRLR) {
|
||||||
run_one_scan_loop();
|
run_one_scan_loop();
|
||||||
right_shift.press();
|
right_shift.press();
|
||||||
|
|
||||||
// For mod-tap and Space Cadet keys, wait for the tapping term.
|
// For mod-tap, wait for the tapping term.
|
||||||
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);
|
idle_for(TAPPING_TERM);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -461,7 +461,7 @@ TEST_P(CapsWordBothShifts, PressLRRL) {
|
||||||
run_one_scan_loop();
|
run_one_scan_loop();
|
||||||
right_shift.press();
|
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);
|
idle_for(TAPPING_TERM);
|
||||||
}
|
}
|
||||||
run_one_scan_loop();
|
run_one_scan_loop();
|
||||||
|
|
Loading…
Reference in a new issue