keymap/ardumont: Fix substitute keycode reset step (#12675)
It so happens that when releasing the control key prior to the main key (C-h, C-i, C-n, ...), the substituted keycode was continuously sent in a loop after that (even when releasing said key). The workaround so far was to type any other key to stop the loop. This commit fixes such behavior by resetting the substitution keycode sent when the ctrl released situation conditional is detected (and that the substitution keycode was on).
This commit is contained in:
parent
5e86a11a8d
commit
f5cecffab2
1 changed files with 7 additions and 2 deletions
|
@ -97,8 +97,7 @@ bool substitute_keycode(uint16_t keycode, keyrecord_t *record, uint8_t mod_state
|
||||||
// Do not let QMK process the keycode further
|
// Do not let QMK process the keycode further
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
// In case substitude_keycode is still being sent even after the release of
|
// In case substitude_keycode is still even after release of the key
|
||||||
// the key
|
|
||||||
if (key_registered) {
|
if (key_registered) {
|
||||||
unregister_code(substitute_keycode);
|
unregister_code(substitute_keycode);
|
||||||
key_registered = false;
|
key_registered = false;
|
||||||
|
@ -106,6 +105,12 @@ bool substitute_keycode(uint16_t keycode, keyrecord_t *record, uint8_t mod_state
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else { // ctrl got released
|
||||||
|
// In case substitude_keycode is still sent after release of the ctrl key
|
||||||
|
if (key_registered) {
|
||||||
|
unregister_code(substitute_keycode);
|
||||||
|
key_registered = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// Else, let QMK process the keycode as usual
|
// Else, let QMK process the keycode as usual
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Reference in a new issue