summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2024-08-04 10:49:43 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2024-08-04 10:52:17 +0900
commit4e85f72f0ee237bef7a1617e0cf8c811a4091d72 (patch)
tree28acc4a9ddde2238e028cec88a6df34d8fe49cf4
parentdd0737aac06cc363225749fa27d51720fd60c659 (diff)
downloadfzf-4e85f72f0ee237bef7a1617e0cf8c811a4091d72.tar.gz
Fix extra scroll offset in multi-line mode (--read0 or --wrap)
Fix #3950
-rw-r--r--src/terminal.go13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/terminal.go b/src/terminal.go
index 09a08985..bbccf1c6 100644
--- a/src/terminal.go
+++ b/src/terminal.go
@@ -4850,11 +4850,18 @@ func (t *Terminal) constrain() {
linesSum := 0
add := func(i int) bool {
- lines, _ := t.numItemLines(t.merger.Get(i).item, numItems-linesSum)
+ lines, overflow := t.numItemLines(t.merger.Get(i).item, numItems-linesSum)
linesSum += lines
if linesSum >= numItems {
- if numItemsFound == 0 {
- numItemsFound = 1
+ /*
+ # Should show all 3 items
+ printf "file1\0file2\0file3\0" | fzf --height=5 --read0 --bind load:last --reverse
+
+ # Should not truncate the last item
+ printf "file\n1\0file\n2\0file\n3\0" | fzf --height=5 --read0 --bind load:last --reverse
+ */
+ if numItemsFound == 0 || !overflow {
+ numItemsFound++
}
return false
}