diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-12 01:10:03 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-12 01:10:03 +0300 |
| commit | b8c96102eb4226c7614a656d6fb4277a6cc30008 (patch) | |
| tree | bb76442d100b77bbb253a1968b94a52170fe3c9b /src/server/headless.rs | |
| parent | 520f4272d0f332f2a98a2a7486be1797feb86dcf (diff) | |
fix: hide mobile switcher cursor
Diffstat (limited to 'src/server/headless.rs')
| -rw-r--r-- | src/server/headless.rs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/server/headless.rs b/src/server/headless.rs index 7bd7abce..10df803d 100644 --- a/src/server/headless.rs +++ b/src/server/headless.rs @@ -1963,6 +1963,41 @@ mod tests { } #[tokio::test] + async fn virtual_render_hides_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; + ws.tabs[0].runtimes.insert( + pane_id, + crate::pane::PaneRuntime::test_with_screen_bytes(20, 5, b"left"), + ); + + state.workspaces = vec![ws]; + state.active = Some(0); + state.selected = 0; + state.mode = crate::app::Mode::Navigate; + + 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, + }) + ); + } + + #[tokio::test] async fn virtual_render_hides_focused_pane_cursor_while_scrolled_back() { let mut state = AppState::test_new(); let mut ws = crate::workspace::Workspace::test_new("test"); |
