mirror of
https://github.com/junegunn/fzf.git
synced 2026-03-26 18:46:52 +08:00
Fix preview follow/scroll with long wrapped lines
Fixes bugs reported in https://github.com/junegunn/fzf/pull/4703: * Clamp followOffset return value to avoid going past the end of lines * Account for t.previewed.filled when determining scrollability
This commit is contained in:
@@ -4223,7 +4223,7 @@ func (t *Terminal) followOffset() int {
|
||||
for i := len(body) - 1; i >= 0; i-- {
|
||||
h := t.previewLineHeight(body[i], maxWidth)
|
||||
if visualLines+h > height {
|
||||
return headerLines + i + 1
|
||||
return min(len(lines)-1, headerLines+i+1)
|
||||
}
|
||||
visualLines += h
|
||||
}
|
||||
@@ -4521,7 +4521,7 @@ Loop:
|
||||
}
|
||||
}
|
||||
|
||||
t.previewer.scrollable = t.previewer.scrollable || t.pwindow.Y() == height-1 && t.pwindow.X() == t.pwindow.Width()
|
||||
t.previewer.scrollable = t.previewer.scrollable || t.pwindow.Y() == height-1 && t.pwindow.X() == t.pwindow.Width() || t.previewed.filled
|
||||
if fillRet == tui.FillNextLine {
|
||||
continue
|
||||
} else if fillRet == tui.FillSuspend {
|
||||
@@ -4544,7 +4544,7 @@ Loop:
|
||||
}
|
||||
lineNo++
|
||||
}
|
||||
t.previewer.scrollable = t.previewer.scrollable || index < len(lines)-1
|
||||
t.previewer.scrollable = t.previewer.scrollable || t.previewed.filled || index < len(lines)-1
|
||||
t.previewed.image = image
|
||||
t.previewed.wireframe = wireframe
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user