mirror of
https://github.com/qmk/qmk_firmware.git
synced 2024-12-03 08:25:11 +00:00
Merge remote-tracking branch 'origin/develop' into xap
This commit is contained in:
commit
8356cb615f
@ -87,7 +87,7 @@ bool process_caps_word(uint16_t keycode, keyrecord_t* record) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(mods & ~MOD_MASK_SHIFT)) {
|
if (!(mods & ~(MOD_MASK_SHIFT | MOD_BIT(KC_RALT)))) {
|
||||||
switch (keycode) {
|
switch (keycode) {
|
||||||
// Ignore MO, TO, TG, TT, and OSL layer switch keys.
|
// Ignore MO, TO, TG, TT, and OSL layer switch keys.
|
||||||
case QK_MOMENTARY ... QK_MOMENTARY_MAX:
|
case QK_MOMENTARY ... QK_MOMENTARY_MAX:
|
||||||
@ -95,6 +95,9 @@ bool process_caps_word(uint16_t keycode, keyrecord_t* record) {
|
|||||||
case QK_TOGGLE_LAYER ... QK_TOGGLE_LAYER_MAX:
|
case QK_TOGGLE_LAYER ... QK_TOGGLE_LAYER_MAX:
|
||||||
case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX:
|
case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX:
|
||||||
case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX:
|
case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX:
|
||||||
|
// Ignore AltGr.
|
||||||
|
case KC_RALT:
|
||||||
|
case OSM(MOD_RALT):
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
#ifndef NO_ACTION_TAPPING
|
#ifndef NO_ACTION_TAPPING
|
||||||
|
@ -212,6 +212,36 @@ TEST_F(CapsWord, SpaceTurnsOffCapsWord) {
|
|||||||
testing::Mock::VerifyAndClearExpectations(&driver);
|
testing::Mock::VerifyAndClearExpectations(&driver);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Tests that typing "AltGr + A" produces "Shift + AltGr + A".
|
||||||
|
TEST_F(CapsWord, ShiftsAltGrSymbols) {
|
||||||
|
TestDriver driver;
|
||||||
|
KeymapKey key_a(0, 0, 0, KC_A);
|
||||||
|
KeymapKey key_altgr(0, 1, 0, KC_RALT);
|
||||||
|
set_keymap({key_a, key_altgr});
|
||||||
|
|
||||||
|
// Allow any number of reports with no keys or only modifiers.
|
||||||
|
// clang-format off
|
||||||
|
EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
|
||||||
|
KeyboardReport(),
|
||||||
|
KeyboardReport(KC_RALT),
|
||||||
|
KeyboardReport(KC_LSFT, KC_RALT))))
|
||||||
|
.Times(AnyNumber());
|
||||||
|
// Expect "Shift + AltGr + A, Space".
|
||||||
|
EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT, KC_RALT, KC_A)));
|
||||||
|
// clang-format on
|
||||||
|
|
||||||
|
// Turn on Caps Word and type "AltGr + A".
|
||||||
|
caps_word_on();
|
||||||
|
|
||||||
|
key_altgr.press();
|
||||||
|
run_one_scan_loop();
|
||||||
|
TapKeys(key_a);
|
||||||
|
run_one_scan_loop();
|
||||||
|
key_altgr.release();
|
||||||
|
|
||||||
|
testing::Mock::VerifyAndClearExpectations(&driver);
|
||||||
|
}
|
||||||
|
|
||||||
struct CapsWordBothShiftsParams {
|
struct CapsWordBothShiftsParams {
|
||||||
std::string name;
|
std::string name;
|
||||||
uint16_t left_shift_keycode;
|
uint16_t left_shift_keycode;
|
||||||
|
Loading…
Reference in New Issue
Block a user