Fix Windows ALT codes (#15938, #18159) #18612
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What does the pull request do?
This PR fixes ALT codes for Windows.
What is the current behavior?
On Windows, ALT codes can be entered by holding
ALT
and entering a number on the numpad. For example: ALT+5 produces '♣'. This behavior is currently broken:ALT+5
produces '7' (ALT+55
) instead of '♣'.ALT+↓
produces the ALT code forALT+22
.What is the updated/expected behavior with this PR?
ALT codes are now produced correctly and no longer swallowed.
Other ALT combinations (non-numpad keys) no longer produce ALT codes.
Tested on: Windows 11 Pro (Version 24H2, OS build 26100.3476)
I have tested ALT codes with English (US) and German keyboard layouts:
✅ ALT codes are produced correctly.
✅ German AltGr combinations continue to work as expected.
✅ IME (such as Japanese characters) continues to work as expected.
How was the solution implemented (if it's not obvious)?
The main changes:
TranslateMessage
while entering an ALT code seems to mess up the keyboard input._ignoreWmChar
needs to be reset, otherwise it can swallow input.Checklist
Breaking changes
–
Obsoletions / Deprecations
–
Fixed issues
Fixes #15938
Fixes #18159