mirror of
https://github.com/herdrdev/herdr.git
synced 2026-09-22 00:01:06 +00:00
fix: hide mobile switcher cursor
This commit is contained in:
@@ -1962,6 +1962,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();
|
||||
|
||||
@@ -246,10 +246,6 @@ 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
|
||||
@@ -262,6 +258,8 @@ fn focused_terminal_cursor(app_state: &AppState) -> Option<CursorState> {
|
||||
Some(CursorState {
|
||||
x: cursor.x,
|
||||
y: cursor.y,
|
||||
visible: cursor.visible && !crate::ui::pane_is_scrolled_back(rt),
|
||||
visible: app_state.mode == Mode::Terminal
|
||||
&& cursor.visible
|
||||
&& !crate::ui::pane_is_scrolled_back(rt),
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user