From 45005f1f733a96e3d9e6748577c01ca2c594304b Mon Sep 17 00:00:00 2001 From: Ogulcan Celik Date: Sat, 2 May 2026 01:23:10 +0300 Subject: fix: mark visible done panes seen on terminal focus --- src/app/mod.rs | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'src/app/mod.rs') diff --git a/src/app/mod.rs b/src/app/mod.rs index 9e437e62..1a287a38 100644 --- a/src/app/mod.rs +++ b/src/app/mod.rs @@ -1152,6 +1152,47 @@ mod tests { assert!(handled); } + #[tokio::test] + async fn outer_focus_gained_marks_visible_done_panes_seen() { + let mut app = test_app(); + let mut workspace = Workspace::test_new("test"); + let root_pane = workspace.tabs[0].root_pane; + let split_pane = workspace.test_split(ratatui::layout::Direction::Horizontal); + let background_tab = workspace.test_add_tab(Some("background")); + let background_pane = workspace.tabs[background_tab].root_pane; + + workspace.tabs[0].panes.get_mut(&root_pane).unwrap().state = AgentState::Idle; + workspace.tabs[0].panes.get_mut(&root_pane).unwrap().seen = false; + workspace.tabs[0].panes.get_mut(&split_pane).unwrap().state = AgentState::Idle; + workspace.tabs[0].panes.get_mut(&split_pane).unwrap().seen = false; + workspace.tabs[background_tab] + .panes + .get_mut(&background_pane) + .unwrap() + .state = AgentState::Idle; + workspace.tabs[background_tab] + .panes + .get_mut(&background_pane) + .unwrap() + .seen = false; + + app.state.workspaces = vec![workspace]; + app.state.active = Some(0); + app.state.selected = 0; + app.state.mode = Mode::Terminal; + app.state.outer_terminal_focus = Some(false); + + let handled = app + .handle_raw_input_event(crate::raw_input::RawInputEvent::OuterFocusGained) + .await; + + assert!(handled); + assert_eq!(app.state.outer_terminal_focus, Some(true)); + assert!(app.state.workspaces[0].tabs[0].panes[&root_pane].seen); + assert!(app.state.workspaces[0].tabs[0].panes[&split_pane].seen); + assert!(!app.state.workspaces[0].tabs[background_tab].panes[&background_pane].seen); + } + #[tokio::test] async fn repeat_key_events_are_ignored_outside_terminal_mode() { let mut app = test_app(); -- cgit v1.2.3