From 94f6d9c0d9bb9cf9ffae99d8bbfb09e9bf2fc9e0 Mon Sep 17 00:00:00 2001 From: Can Celik Date: Thu, 3 Sep 2026 02:47:48 +0300 Subject: fix: reveal newly focused spaces in the sidebar (#3554) --- src/client/shell/scroll.rs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/client/shell/scroll.rs') diff --git a/src/client/shell/scroll.rs b/src/client/shell/scroll.rs index a0496cb8..4ff507d9 100644 --- a/src/client/shell/scroll.rs +++ b/src/client/shell/scroll.rs @@ -53,6 +53,29 @@ pub(super) fn list_scroll_metrics( } } +pub(super) fn list_scroll_start_to_reveal( + row_heights: &[u16], + gaps_after: &[u16], + body_height: u16, + requested_start: usize, + target: usize, +) -> usize { + let mut metrics = list_scroll_metrics(row_heights, gaps_after, body_height, requested_start); + let mut start = metrics + .max_offset_from_bottom + .saturating_sub(metrics.offset_from_bottom); + if target < start { + return target; + } + while target >= start.saturating_add(metrics.viewport_rows) + && start < metrics.max_offset_from_bottom + { + start = start.saturating_add(1); + metrics = list_scroll_metrics(row_heights, gaps_after, body_height, start); + } + start +} + pub(super) fn render_list_scrollbar( buffer: &mut Buffer, track: Rect, -- cgit v1.2.3