diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-12 01:21:09 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-12 01:21:09 +0300 |
| commit | f88f33e2d94d1f3fa35e96897ff1053cc5add042 (patch) | |
| tree | c0e3fe922dae6543c5f850cb5eb3620af9e19916 | |
| parent | b8c96102eb4226c7614a656d6fb4277a6cc30008 (diff) | |
fix: omit cursor for mobile switcher overlay
| -rw-r--r-- | src/server/headless.rs | 17 | ||||
| -rw-r--r-- | src/server/render_stream.rs | 8 |
2 files changed, 7 insertions, 18 deletions
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<CursorState> { + 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<CursorState> { 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), }) } |
