Fix #156: clear weak mods on every key press
- new macro_mods bit field for mods applied by macros - weak_mods now only used for ACT_{L,R}MODS (i.e. LSFT, RSFT, LCTL etc.) - clear the _weak_ mods on every key *pressed* such that LSFT etc. can no more interfere with the next key
This commit is contained in:
parent
7d3ebd7b40
commit
b7a81f0419
4 changed files with 23 additions and 2 deletions
|
@ -70,6 +70,10 @@ void process_action(keyrecord_t *record)
|
|||
#endif
|
||||
dprintln();
|
||||
|
||||
if (event.pressed) {
|
||||
// clear the potential weak mods left by previously pressed keys
|
||||
clear_weak_mods();
|
||||
}
|
||||
switch (action.kind.id) {
|
||||
/* Key and Mods */
|
||||
case ACT_LMODS:
|
||||
|
@ -500,6 +504,7 @@ void clear_keyboard(void)
|
|||
void clear_keyboard_but_mods(void)
|
||||
{
|
||||
clear_weak_mods();
|
||||
clear_macro_mods();
|
||||
clear_keys();
|
||||
send_keyboard_report();
|
||||
#ifdef MOUSEKEY_ENABLE
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue