diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-19 14:24:30 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-19 14:24:30 +0300 |
| commit | d616bcd6b86742762fec5f0696a5c13701fe717c (patch) | |
| tree | 44e20df741c3c587168a351e422a67ede524ca2d /src/app | |
| parent | 6cbdba434fd15fc3818302a5843593da47db2eb4 (diff) | |
fix: preserve modified enter input
refs #168
Diffstat (limited to 'src/app')
| -rw-r--r-- | src/app/mod.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/app/mod.rs b/src/app/mod.rs index 125fabed..31ea3f6f 100644 --- a/src/app/mod.rs +++ b/src/app/mod.rs @@ -2453,6 +2453,27 @@ mod tests { } #[tokio::test] + async fn route_client_input_preserves_shift_enter_for_modify_other_keys_pane() { + 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[>4;1m", 4); + 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[13;2u".to_vec()); + + assert_eq!( + rx.recv().await.unwrap(), + bytes::Bytes::from_static(b"\x1b[27;2;13~") + ); + } + + #[tokio::test] async fn route_client_input_splits_multi_event_payloads_before_forwarding() { let mut app = test_app(); let mut workspace = Workspace::test_new("test"); |
