From 95f186f36451c3d5cebd30649df64c390c77b62d Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Sun, 22 Mar 2026 09:55:07 +0900 Subject: [PATCH] Fix preview scrollbar not rendered after toggle-preview Fix #4732 --- src/terminal.go | 2 +- test/test_preview.rb | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/terminal.go b/src/terminal.go index 94a02587..98544f1b 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -4630,7 +4630,7 @@ func (t *Terminal) renderPreviewScrollbar(yoff int, barLength int, barStart int) w := t.pborder.Width() xw := [2]int{t.pwindow.Left(), t.pwindow.Width()} redraw := false - if len(t.previewer.bar) != height || t.previewer.xw != xw { + if len(t.previewer.bar) != height || t.previewer.xw != xw || t.previewed.version != t.previewer.version { redraw = true t.previewer.bar = make([]bool, height) t.previewer.xw = xw diff --git a/test/test_preview.rb b/test/test_preview.rb index 25579553..ac8919db 100644 --- a/test/test_preview.rb +++ b/test/test_preview.rb @@ -623,4 +623,20 @@ class TestPreview < TestInteractive assert_equal(0, lines.count { |line| line.include?('│ h') }) end end + + def test_preview_toggle_should_redraw_scrollbar + tmux.send_keys %(seq 1 | #{FZF} --no-border --scrollbar --preview 'seq $((FZF_PREVIEW_LINES + 1))' --preview-border line --bind tab:toggle-preview --header foo --header-border --footer bar --footer-border), :Enter + tmux.until do |lines| + assert_equal 1, lines.match_count + assert_operator lines.count { |line| line.end_with?('│') }, :>, 2 + end + tmux.send_keys :Tab + tmux.until do |lines| + assert_equal(2, lines.count { |line| line.end_with?('│') }) + end + tmux.send_keys :Tab + tmux.until do |lines| + assert_operator lines.count { |line| line.end_with?('│') }, :>, 2 + end + end end