aboutsummaryrefslogtreecommitdiff
path: root/src/app/mod.rs
diff options
context:
space:
mode:
authorCan Celik <ogulcancelik@gmail.com>2026-08-18 19:30:57 +0300
committerGitHub <noreply@github.com>2026-08-18 19:30:57 +0300
commit0bd445020ea19e0cea13f42a28212db7b2df196d (patch)
treecd3bc5940e4cfff1cf7977aa3eab3c99d3cad6f7 /src/app/mod.rs
parent2d24950ad9a02096921bc764e2e3dcd8900c3366 (diff)
fix: preserve macOS IME commits in report-all mode (#2947)
Diffstat (limited to 'src/app/mod.rs')
-rw-r--r--src/app/mod.rs23
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");