aboutsummaryrefslogtreecommitdiff
path: root/src/app/input
diff options
context:
space:
mode:
authorkangal-bot <kangal@herdr.dev>2026-05-18 20:13:19 +0300
committerGitHub <noreply@github.com>2026-05-18 20:13:19 +0300
commitfa0e380e627644f269cfbd0ed4cf79f15ff74176 (patch)
treec231d9801bef7830ec5600a4a538771d34960562 /src/app/input
parentf33e1a0faae5e0ecbfd9653f9635d83793c98b95 (diff)
fix: preserve alt backspace in panes (#165)
refs #155 Co-authored-by: kangal-bot <kangal-bot@users.noreply.github.com>
Diffstat (limited to 'src/app/input')
-rw-r--r--src/app/input/terminal.rs27
1 files changed, 27 insertions, 0 deletions
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
@@ -487,6 +487,33 @@ mod tests {
}
#[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();
let mut ws = Workspace::test_new("test");