qmk/qmk_firmware

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

Open

#24 341 ouverte le 29 août 2024

Voir sur GitHub
 (1 commentaire) (0 réactions) (0 assignés)C (43 867 forks)batch import
bughelp wanted

Métriques du dépôt

Stars
 (20 368 stars)
Métriques de merge PR
 (Merge moyen 20j 9h) (27 PRs mergées en 30 j)

Description

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.

Guide contributeur