diff --git a/src/server/headless.rs b/src/server/headless.rs index 10df803d..d9227404 100644 --- a/src/server/headless.rs +++ b/src/server/headless.rs @@ -1963,7 +1963,7 @@ mod tests { } #[tokio::test] - async fn virtual_render_hides_focused_pane_cursor_while_mobile_switcher_open() { + async fn virtual_render_omits_focused_pane_cursor_while_mobile_switcher_open() { let mut state = AppState::test_new(); let mut ws = crate::workspace::Workspace::test_new("test"); let pane_id = ws.tabs[0].root_pane; @@ -1980,21 +1980,8 @@ mod tests { let area = Rect::new(0, 0, 44, 24); let (_buffer, cursor) = crate::server::render_stream::render_virtual(&mut state, area, true); - let pane = state - .view - .pane_infos - .iter() - .find(|info| info.id == pane_id) - .expect("focused pane info"); - assert_eq!( - cursor, - Some(CursorState { - x: pane.inner_rect.x + 4, - y: pane.inner_rect.y, - visible: false, - }) - ); + assert_eq!(cursor, None); } #[tokio::test] diff --git a/src/server/render_stream.rs b/src/server/render_stream.rs index 856a362f..45542a7a 100644 --- a/src/server/render_stream.rs +++ b/src/server/render_stream.rs @@ -246,6 +246,10 @@ pub(crate) fn visible_hyperlinks(app_state: &AppState) -> Vec<((u16, u16), Strin } fn focused_terminal_cursor(app_state: &AppState) -> Option { + if app_state.mode != Mode::Terminal { + return None; + } + let ws_idx = app_state.active?; let ws = app_state.workspaces.get(ws_idx)?; let info = app_state @@ -258,8 +262,6 @@ fn focused_terminal_cursor(app_state: &AppState) -> Option { Some(CursorState { x: cursor.x, y: cursor.y, - visible: app_state.mode == Mode::Terminal - && cursor.visible - && !crate::ui::pane_is_scrolled_back(rt), + visible: cursor.visible && !crate::ui::pane_is_scrolled_back(rt), }) }