qmk/qmk_firmware

[Bug] Holding KC_RSFT does not work when Auto Shift is active (it gets released before next keypress)

Open

#24.341 geöffnet am 29. Aug. 2024

Auf GitHub ansehen
 (1 Kommentar) (0 Reaktionen) (0 zugewiesene Personen)C (43.867 Forks)batch import
bughelp wanted

Repository-Metriken

Stars
 (20.368 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 20T 9h) (27 gemergte PRs in 30 T)

Beschreibung

Describe the Bug

When AutoShift is activated, holding KC_LSFT sends the corresponding shifted symbol or letter. However, for some reason, KC_RSFT gets released before pressing another key.

I am not sure whether this is the intended behavior, but I decided to tinker quantum/process_keycode/process_auto_shift.c a little bit anyway. I am by no means an expert, this is just a suggestion or question.

In line 161, I added MOD_BIT(KC_RSFT): Before:

https://github.com/qmk/qmk_firmware/blob/fd65bd5ae014565d333195285b154d9eeca9294b/quantum/process_keycode/process_auto_shift.c#L161

After: ) & (~(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)))

In line 217, I added MOD_BIT(KC_RSFT)

https://github.com/qmk/qmk_firmware/blob/fd65bd5ae014565d333195285b154d9eeca9294b/quantum/process_keycode/process_auto_shift.c#L217

After: autoshift_flags.lastshifted = (get_mods() | get_oneshot_mods()) & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT));

I tested it and it seems to be working, but I am not sure if it may cause further problems, so I decided to check with you.

Contributor Guide