summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author依云 <lilydjwg@gmail.com>2024-02-14 02:33:23 +0800
committerGitHub <noreply@github.com>2024-02-13 18:33:23 +0000
commit1a432b61ee4f52f3ff0da1c991aa5d605f700869 (patch)
tree867d845466d24091ba47e1f92bd1d07e9949d038
parent87e19df9c5d8c2a7438c93c67b4590df722fb95c (diff)
fix(ui): don't preserve for empty space (#1712)
For the following situation: $ atuin search -i --inline-height 15 [ HOST ] query > 1m 19d ago item 1 1 0s 1mo ago item 2 2 0s 1mo ago item 3 3 0s 1mo ago item 4 4 0s 1mo ago item 5 5 0s 1mo ago item 6 Atuin v17.2.1 [...] Scrolling item 6 results: [ HOST ] query 0s 1mo ago item 3 0s 1mo ago item 4 0s 1mo ago item 5 > 0s 1mo ago item 6 Atuin v17.2.1 [...] With this patch it becomes: [ HOST ] query 1m 19d ago item 1 0s 1mo ago item 2 0s 1mo ago item 3 0s 1mo ago item 4 0s 1mo ago item 5 > 0s 1mo ago item 6 Atuin v17.2.1 [...]
-rw-r--r--atuin/src/command/client/search/history_list.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/atuin/src/command/client/search/history_list.rs b/atuin/src/command/client/search/history_list.rs
index 488ed89f..e27d0ce2 100644
--- a/atuin/src/command/client/search/history_list.rs
+++ b/atuin/src/command/client/search/history_list.rs
@@ -109,7 +109,7 @@ impl<'a> HistoryList<'a> {
fn get_items_bounds(&self, selected: usize, offset: usize, height: usize) -> (usize, usize) {
let offset = offset.min(self.history.len().saturating_sub(1));
- let max_scroll_space = height.min(10);
+ let max_scroll_space = height.min(10).min(self.history.len() - selected);
if offset + height < selected + max_scroll_space {
let end = selected + max_scroll_space;
(end - height, end)