[PR #12823] [MERGED] Include keyboard modalities when processing key events #29250

Open
opened 2026-01-31 09:33:45 +00:00 by claunia · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/microsoft/terminal/pull/12823
Author: @matkaas
Created: 4/4/2022
Status: Merged
Merged: 4/5/2022
Merged by: @undefined

Base: mainHead: terminal-keyboard-modalities-fix


📝 Commits (1)

  • 1b9849b Include keyboard modalities when processing key events

📊 Changes

1 file changed (+17 additions, -0 deletions)

View changed files

📝 src/cascadia/TerminalControl/TermControl.cpp (+17 -0)

📄 Description

Followed reproduction steps from linked issue #12818, wt.exe shows
expected behaviour for capslock, scrolllock and numlock (assuming
numlock is an "enhanced" key):

C:\Users\Kaas\source\Playground\x64\Debug>Playground.exe
KeyState:   Up, KeyCode: 0x0d, ScanCode: 0x1c, Unicode:   (0x000d), Modifiers: 0x0000
KeyState: Down, KeyCode: 0x41, ScanCode: 0x1e, Unicode: a (0x0061), Modifiers: 0x0000
KeyState:   Up, KeyCode: 0x41, ScanCode: 0x1e, Unicode: a (0x0061), Modifiers: 0x0000
KeyState: Down, KeyCode: 0x53, ScanCode: 0x1f, Unicode: s (0x0073), Modifiers: 0x0000
KeyState:   Up, KeyCode: 0x53, ScanCode: 0x1f, Unicode: s (0x0073), Modifiers: 0x0000
KeyState: Down, KeyCode: 0x44, ScanCode: 0x20, Unicode: d (0x0064), Modifiers: 0x0000
KeyState:   Up, KeyCode: 0x44, ScanCode: 0x20, Unicode: d (0x0064), Modifiers: 0x0000
KeyState: Down, KeyCode: 0x14, ScanCode: 0x3a, Unicode:   (0x0000), Modifiers: 0x0080
KeyState:   Up, KeyCode: 0x14, ScanCode: 0x3a, Unicode:   (0x0000), Modifiers: 0x0080
KeyState: Down, KeyCode: 0x41, ScanCode: 0x1e, Unicode: A (0x0041), Modifiers: 0x0080
KeyState:   Up, KeyCode: 0x41, ScanCode: 0x1e, Unicode: A (0x0041), Modifiers: 0x0080
KeyState: Down, KeyCode: 0x53, ScanCode: 0x1f, Unicode: S (0x0053), Modifiers: 0x0080
KeyState:   Up, KeyCode: 0x53, ScanCode: 0x1f, Unicode: S (0x0053), Modifiers: 0x0080
KeyState: Down, KeyCode: 0x44, ScanCode: 0x20, Unicode: D (0x0044), Modifiers: 0x0080
KeyState:   Up, KeyCode: 0x44, ScanCode: 0x20, Unicode: D (0x0044), Modifiers: 0x0080
KeyState: Down, KeyCode: 0x91, ScanCode: 0x46, Unicode:   (0x0000), Modifiers: 0x00c0
KeyState:   Up, KeyCode: 0x91, ScanCode: 0x46, Unicode:   (0x0000), Modifiers: 0x00c0
KeyState: Down, KeyCode: 0x53, ScanCode: 0x1f, Unicode: S (0x0053), Modifiers: 0x00c0
KeyState:   Up, KeyCode: 0x53, ScanCode: 0x1f, Unicode: S (0x0053), Modifiers: 0x00c0
KeyState: Down, KeyCode: 0x90, ScanCode: 0x45, Unicode:   (0x0000), Modifiers: 0x01e0
KeyState:   Up, KeyCode: 0x90, ScanCode: 0x45, Unicode:   (0x0000), Modifiers: 0x01e0
KeyState: Down, KeyCode: 0x4e, ScanCode: 0x31, Unicode: N (0x004e), Modifiers: 0x00e0
KeyState:   Up, KeyCode: 0x4e, ScanCode: 0x31, Unicode: N (0x004e), Modifiers: 0x00e0
KeyState: Down, KeyCode: 0x90, ScanCode: 0x45, Unicode:   (0x0000), Modifiers: 0x01c0
KeyState:   Up, KeyCode: 0x90, ScanCode: 0x45, Unicode:   (0x0000), Modifiers: 0x01c0
KeyState: Down, KeyCode: 0x91, ScanCode: 0x46, Unicode:   (0x0000), Modifiers: 0x0080
KeyState:   Up, KeyCode: 0x91, ScanCode: 0x46, Unicode:   (0x0000), Modifiers: 0x0080
KeyState: Down, KeyCode: 0x14, ScanCode: 0x3a, Unicode:   (0x0000), Modifiers: 0x0000
KeyState:   Up, KeyCode: 0x14, ScanCode: 0x3a, Unicode:   (0x0000), Modifiers: 0x0000
KeyState: Down, KeyCode: 0x51, ScanCode: 0x10, Unicode: q (0x0071), Modifiers: 0x0000

Closes #12818


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/microsoft/terminal/pull/12823 **Author:** [@matkaas](https://github.com/matkaas) **Created:** 4/4/2022 **Status:** ✅ Merged **Merged:** 4/5/2022 **Merged by:** [@undefined](undefined) **Base:** `main` ← **Head:** `terminal-keyboard-modalities-fix` --- ### 📝 Commits (1) - [`1b9849b`](https://github.com/microsoft/terminal/commit/1b9849b1b625a604743f8ae0ab4342115e6a5166) Include keyboard modalities when processing key events ### 📊 Changes **1 file changed** (+17 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `src/cascadia/TerminalControl/TermControl.cpp` (+17 -0) </details> ### 📄 Description Followed reproduction steps from linked issue #12818, wt.exe shows expected behaviour for capslock, scrolllock and numlock (assuming numlock is an "enhanced" key): ``` C:\Users\Kaas\source\Playground\x64\Debug>Playground.exe KeyState: Up, KeyCode: 0x0d, ScanCode: 0x1c, Unicode: (0x000d), Modifiers: 0x0000 KeyState: Down, KeyCode: 0x41, ScanCode: 0x1e, Unicode: a (0x0061), Modifiers: 0x0000 KeyState: Up, KeyCode: 0x41, ScanCode: 0x1e, Unicode: a (0x0061), Modifiers: 0x0000 KeyState: Down, KeyCode: 0x53, ScanCode: 0x1f, Unicode: s (0x0073), Modifiers: 0x0000 KeyState: Up, KeyCode: 0x53, ScanCode: 0x1f, Unicode: s (0x0073), Modifiers: 0x0000 KeyState: Down, KeyCode: 0x44, ScanCode: 0x20, Unicode: d (0x0064), Modifiers: 0x0000 KeyState: Up, KeyCode: 0x44, ScanCode: 0x20, Unicode: d (0x0064), Modifiers: 0x0000 KeyState: Down, KeyCode: 0x14, ScanCode: 0x3a, Unicode: (0x0000), Modifiers: 0x0080 KeyState: Up, KeyCode: 0x14, ScanCode: 0x3a, Unicode: (0x0000), Modifiers: 0x0080 KeyState: Down, KeyCode: 0x41, ScanCode: 0x1e, Unicode: A (0x0041), Modifiers: 0x0080 KeyState: Up, KeyCode: 0x41, ScanCode: 0x1e, Unicode: A (0x0041), Modifiers: 0x0080 KeyState: Down, KeyCode: 0x53, ScanCode: 0x1f, Unicode: S (0x0053), Modifiers: 0x0080 KeyState: Up, KeyCode: 0x53, ScanCode: 0x1f, Unicode: S (0x0053), Modifiers: 0x0080 KeyState: Down, KeyCode: 0x44, ScanCode: 0x20, Unicode: D (0x0044), Modifiers: 0x0080 KeyState: Up, KeyCode: 0x44, ScanCode: 0x20, Unicode: D (0x0044), Modifiers: 0x0080 KeyState: Down, KeyCode: 0x91, ScanCode: 0x46, Unicode: (0x0000), Modifiers: 0x00c0 KeyState: Up, KeyCode: 0x91, ScanCode: 0x46, Unicode: (0x0000), Modifiers: 0x00c0 KeyState: Down, KeyCode: 0x53, ScanCode: 0x1f, Unicode: S (0x0053), Modifiers: 0x00c0 KeyState: Up, KeyCode: 0x53, ScanCode: 0x1f, Unicode: S (0x0053), Modifiers: 0x00c0 KeyState: Down, KeyCode: 0x90, ScanCode: 0x45, Unicode: (0x0000), Modifiers: 0x01e0 KeyState: Up, KeyCode: 0x90, ScanCode: 0x45, Unicode: (0x0000), Modifiers: 0x01e0 KeyState: Down, KeyCode: 0x4e, ScanCode: 0x31, Unicode: N (0x004e), Modifiers: 0x00e0 KeyState: Up, KeyCode: 0x4e, ScanCode: 0x31, Unicode: N (0x004e), Modifiers: 0x00e0 KeyState: Down, KeyCode: 0x90, ScanCode: 0x45, Unicode: (0x0000), Modifiers: 0x01c0 KeyState: Up, KeyCode: 0x90, ScanCode: 0x45, Unicode: (0x0000), Modifiers: 0x01c0 KeyState: Down, KeyCode: 0x91, ScanCode: 0x46, Unicode: (0x0000), Modifiers: 0x0080 KeyState: Up, KeyCode: 0x91, ScanCode: 0x46, Unicode: (0x0000), Modifiers: 0x0080 KeyState: Down, KeyCode: 0x14, ScanCode: 0x3a, Unicode: (0x0000), Modifiers: 0x0000 KeyState: Up, KeyCode: 0x14, ScanCode: 0x3a, Unicode: (0x0000), Modifiers: 0x0000 KeyState: Down, KeyCode: 0x51, ScanCode: 0x10, Unicode: q (0x0071), Modifiers: 0x0000 ``` Closes #12818 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
claunia added the pull-request label 2026-01-31 09:33:45 +00:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#29250