1
0
Fork 0

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:
Didier Loiseau 2016-03-08 23:14:15 +01:00
parent 7d3ebd7b40
commit b7a81f0419
4 changed files with 23 additions and 2 deletions

View file

@ -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