From af7e189bd6749e7ecfa67d8c24f79c1bb1a498b0 Mon Sep 17 00:00:00 2001 From: JJ Liebig Date: Sat, 5 Sep 2026 14:30:00 +0200 Subject: fix: retain mouse selections across unrelated terminal output (#3641) --- src/client/shell/tests/copy.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/client/shell/tests') diff --git a/src/client/shell/tests/copy.rs b/src/client/shell/tests/copy.rs index 64cc78e6..e8555db6 100644 --- a/src/client/shell/tests/copy.rs +++ b/src/client/shell/tests/copy.rs @@ -199,6 +199,16 @@ fn retained_mouse_selection_copies_only_on_exact_copy_shortcut() { .as_ref() .is_some_and(crate::selection::Selection::is_finalized)); + // Agent output outside the selected text must not cancel a pending copy. + let mut updated = state.pane_surface.clone().expect("pane surface"); + updated.panes[0].content_revision = 2; + updated.frame.cells[4].symbol = "-".into(); + state.set_pane_surface(updated); + assert!(state + .selection + .as_ref() + .is_some_and(crate::selection::Selection::is_finalized)); + let copy = state.handle_raw_events(vec![RawInputEvent::Key(crate::input::TerminalKey::new( KeyCode::Char('c'), KeyModifiers::CONTROL, -- cgit v1.2.3