From fa0e380e627644f269cfbd0ed4cf79f15ff74176 Mon Sep 17 00:00:00 2001 From: kangal-bot Date: Mon, 18 May 2026 20:13:19 +0300 Subject: fix: preserve alt backspace in panes (#165) refs #155 Co-authored-by: kangal-bot --- src/app/input/terminal.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'src/app/input') diff --git a/src/app/input/terminal.rs b/src/app/input/terminal.rs index a9af902a..b5ceda12 100644 --- a/src/app/input/terminal.rs +++ b/src/app/input/terminal.rs @@ -486,6 +486,33 @@ mod tests { assert_eq!(app.state.mode, Mode::Terminal); } + #[tokio::test] + async fn alt_backspace_is_forwarded_to_focused_pane() { + let mut app = app_for_mouse_test(); + let mut ws = Workspace::test_new("test"); + let pane_id = ws.tabs[0].root_pane; + let pane_infos = ws.tabs[0].layout.panes(Rect::new(0, 0, 80, 24)); + let info = pane_infos[0].clone(); + let (runtime, mut rx) = crate::pane::PaneRuntime::test_with_channel( + info.inner_rect.width, + info.inner_rect.height, + ); + ws.tabs[0].runtimes.insert(pane_id, runtime); + + app.state.workspaces = vec![ws]; + app.state.active = Some(0); + app.state.selected = 0; + app.state.mode = Mode::Terminal; + app.state.view.pane_infos = pane_infos; + + let key = crate::input::parse_terminal_key_sequence("\x1b\x7f").unwrap(); + app.handle_terminal_key_headless(key); + + let bytes = rx.try_recv().unwrap(); + assert_eq!(bytes.as_ref(), b"\x1b\x7f"); + assert!(rx.try_recv().is_err()); + } + #[tokio::test] async fn page_up_scrolls_plain_shell_pane() { let mut app = app_for_mouse_test(); -- cgit v1.2.3