diff options
| author | akbash <akbash@herdr.dev> | 2026-09-12 00:38:57 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-09-12 01:38:57 +0400 |
| commit | 9ad65d9031e8cb16a7b553c0e6f74809e9811e92 (patch) | |
| tree | 84fb346571442899f6fe1b1a6b60783d2be764b2 /src/client | |
| parent | fb5525fc2234a246dfdfc9e0d7ed73c824cbd8a6 (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.rs | 25 |
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 |
