From ee3e6806c707ebdc8540daa1a133e8c3ff8181e0 Mon Sep 17 00:00:00 2001 From: Hadi <112569860+anotherhadi@users.noreply.github.com> Date: Sat, 30 May 2026 19:30:22 +0200 Subject: [PATCH] fix: jumping cursor on tick when filter is set Signed-off-by: Hadi <112569860+anotherhadi@users.noreply.github.com> --- internal/ui/history/update.go | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/internal/ui/history/update.go b/internal/ui/history/update.go index d96e095..a03a780 100644 --- a/internal/ui/history/update.go +++ b/internal/ui/history/update.go @@ -76,14 +76,28 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { } case SearchResultMsg: + var selectedID int64 + if m.cursor >= 0 && m.cursor < len(m.entries) { + selectedID = m.entries[m.cursor].ID + } m.entries = msg.Entries m.cursor = 0 + if selectedID != 0 { + for i, e := range m.entries { + if e.ID == selectedID { + m.cursor = i + break + } + } + } m.searchErr = "" m.pager.SetTotalPages(len(m.entries)) m.refreshListViewport() m.refreshBody() - m.bodyViewport.SetYOffset(0) - m.bodyViewport.SetXOffset(0) + if selectedID == 0 { + m.bodyViewport.SetYOffset(0) + m.bodyViewport.SetXOffset(0) + } if m.searchKind == searchKindSQL { m.acceptSearch() }