diff --git a/internal/tui/exp/list/list.go b/internal/tui/exp/list/list.go index 1cc7bf03dd80c6b142c7cfab816329aa381929f7..7df8b5f2c6d97d0d1e8fcdd6b4a0f7d0265ff855 100644 --- a/internal/tui/exp/list/list.go +++ b/internal/tui/exp/list/list.go @@ -1231,6 +1231,13 @@ func (l *list[T]) MoveDown(n int) tea.Cmd { l.decrementOffset(n) } + // Re-render after scrolling + if oldOffset != l.offset { + l.renderMu.Lock() + l.rendered = l.renderVirtualScrolling() + l.renderMu.Unlock() + } + if oldOffset == l.offset { // Even if offset didn't change, we might need to change selection // if we're at the edge of the scrollable area @@ -1265,6 +1272,13 @@ func (l *list[T]) MoveUp(n int) tea.Cmd { l.incrementOffset(n) } + // Re-render after scrolling + if oldOffset != l.offset { + l.renderMu.Lock() + l.rendered = l.renderVirtualScrolling() + l.renderMu.Unlock() + } + if oldOffset == l.offset { // Even if offset didn't change, we might need to change selection // if we're at the edge of the scrollable area