Skip to content

Reload locale specific data when the input language or method changes #10729

@lhecker

Description

@lhecker

VkKeyScanW as well as MapVirtualKeyW are widely used throughout the project, but are locale sensitive functions. For instance VkKeyScanW(0) will return different values for "English (United States)" and "English (United Kingdom)". See #8871.

This issue occurs primarily in two areas:

  • The settings model maps characters to virtual keys when deserializing key bindings.
    For instance using the following locale / keyboard layout ctrl+< will deserialize to:
    • German: ctrl+vk(0xE2) (there's a dedicated < key where the \ key is on the US English keyboard)
    • US English: ctrl+shift+vk(0xBC) (< is shift+,)
  • After Introduce vk() and sc() key chord specifiers #10666 has been merged it'll map the scan code in the quake mode key binding win+sc(41) to a virtual key in order to call RegisterHotKey. This scan code to virtual key mappings are highly dependent on the locale, the quake mode key binding will fail to work once the input language was changed.

Metadata

Metadata

Assignees

Labels

Area-i18nInternationalization issues (e.g.: non-US input handling doesn't work)Issue-BugIt either shouldn't be doing this or needs an investigation.Needs-Tag-FixDoesn't match tag requirementsPriority-1A description (P1)Product-TerminalThe new Windows Terminal.Resolution-Fix-CommittedFix is checked in, but it might be 3-4 weeks until a release.

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions