aboutsummaryrefslogtreecommitdiff
path: root/src/app
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-05-19 14:24:30 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-05-19 14:24:30 +0300
commitd616bcd6b86742762fec5f0696a5c13701fe717c (patch)
tree44e20df741c3c587168a351e422a67ede524ca2d /src/app
parent6cbdba434fd15fc3818302a5843593da47db2eb4 (diff)
fix: preserve modified enter input
refs #168
Diffstat (limited to 'src/app')
-rw-r--r--src/app/mod.rs21
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");