diff options
| author | Can Celik <ogulcancelik@gmail.com> | 2026-08-18 19:30:57 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-08-18 19:30:57 +0300 |
| commit | 0bd445020ea19e0cea13f42a28212db7b2df196d (patch) | |
| tree | cd3bc5940e4cfff1cf7977aa3eab3c99d3cad6f7 /src/app | |
| parent | 2d24950ad9a02096921bc764e2e3dcd8900c3366 (diff) | |
fix: preserve macOS IME commits in report-all mode (#2947)
Diffstat (limited to 'src/app')
| -rw-r--r-- | src/app/mod.rs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/app/mod.rs b/src/app/mod.rs index 501f39f6..75568990 100644 --- a/src/app/mod.rs +++ b/src/app/mod.rs @@ -5537,6 +5537,29 @@ last_pane = "prefix+tab" } #[tokio::test] + async fn kitty_associated_ime_text_bypasses_report_all_key_encoding() { + let mut app = test_app(); + let mut workspace = Workspace::test_new("test"); + let focused = workspace.focused_pane_id().unwrap(); + let (runtime, mut rx) = + TerminalRuntime::test_with_channel_and_scrollback_bytes(80, 24, 0, b"\x1b[>15u", 2); + workspace.tabs[0].runtimes.insert(focused, runtime); + app.state.workspaces = vec![workspace]; + app.state.active = Some(0); + app.state.selected = 0; + app.state.mode = Mode::Terminal; + + app.route_client_input(b"\x1b[32;;20320:22909u".to_vec()); + + assert_eq!( + rx.recv().await.unwrap(), + bytes::Bytes::from_static("你好".as_bytes()) + ); + assert!(rx.try_recv().is_err()); + assert!(app.input_leases.is_empty()); + } + + #[tokio::test] async fn committed_ascii_uppercase_bypasses_report_all_key_encoding() { let mut app = test_app(); let mut workspace = Workspace::test_new("test"); |
