aboutsummaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
authorakbash <akbash@herdr.dev>2026-09-12 00:38:57 +0300
committerGitHub <noreply@github.com>2026-09-12 01:38:57 +0400
commit9ad65d9031e8cb16a7b553c0e6f74809e9811e92 (patch)
tree84fb346571442899f6fe1b1a6b60783d2be764b2 /src/client
parentfb5525fc2234a246dfdfc9e0d7ed73c824cbd8a6 (diff)
fix: suppress Windows dead-key fallback characters in remote panes (#3972)
refs #3948 Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
Diffstat (limited to 'src/client')
-rw-r--r--src/client/input/windows_vti.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/client/input/windows_vti.rs b/src/client/input/windows_vti.rs
index d89a02c7..679d5b31 100644
--- a/src/client/input/windows_vti.rs
+++ b/src/client/input/windows_vti.rs
@@ -2546,6 +2546,31 @@ mod tests {
}
#[test]
+ fn vti_altgr_dead_key_preserves_native_record_without_command_modifiers() {
+ // AltGr+4 press captured in #3948, Spanish ISO layout.
+ let record = WindowsKeyRecord {
+ key_down: true,
+ repeat_count: 1,
+ virtual_key_code: 52,
+ virtual_scan_code: 5,
+ unicode: 0,
+ control_key_state: 9,
+ };
+ let events = translate_with_provenance(win32_input_mode_encoded_record(record));
+ assert_eq!(
+ events,
+ vec![crate::protocol::ClientInputEvent::Key {
+ code: crate::protocol::ClientKeyCode::Char('4'),
+ modifiers: 0,
+ kind: crate::protocol::ClientKeyKind::Press,
+ repeat_count: 1,
+ generated_text: None,
+ source: crate::protocol::ClientKeySource::WindowsConsole { record },
+ }]
+ );
+ }
+
+ #[test]
fn vti_us_international_dead_key_only_emits_composed_text() {
fn encode_for_kitty(events: Vec<crate::protocol::ClientInputEvent>, flags: u16) -> Vec<u8> {
events