diff options
Diffstat (limited to 'tmk_core/common/action.c')
-rw-r--r-- | tmk_core/common/action.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index 0ec4a43ee..2deafd465 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c | |||
@@ -754,6 +754,13 @@ void register_code(uint8_t code) { | |||
754 | */ | 754 | */ |
755 | #endif | 755 | #endif |
756 | { | 756 | { |
757 | // Force a new key press if the key is already pressed | ||
758 | // without this, keys with the same keycode, but different | ||
759 | // modifiers will be reported incorrectly, see issue #1708 | ||
760 | if (is_key_pressed(keyboard_report, code)) { | ||
761 | del_key(code); | ||
762 | send_keyboard_report(); | ||
763 | } | ||
757 | add_key(code); | 764 | add_key(code); |
758 | send_keyboard_report(); | 765 | send_keyboard_report(); |
759 | } | 766 | } |