diff options
| author | Junegunn Choi <junegunn.c@gmail.com> | 2025-10-02 23:58:32 +0900 |
|---|---|---|
| committer | Junegunn Choi <junegunn.c@gmail.com> | 2025-10-09 00:17:00 +0900 |
| commit | 91e119a77e09a11acab401846c557f0b8ac708a8 (patch) | |
| tree | 0befd60c6036a9b182f2c96e3b633dc8ffdad1ae | |
| parent | 3984161f6cefe8b434a002d08af3f7390bf1d273 (diff) | |
| download | fzf-91e119a77e09a11acab401846c557f0b8ac708a8.tar.gz | |
Fix non-matching items not refreshing after clearing query
| -rw-r--r-- | src/terminal.go | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/terminal.go b/src/terminal.go index b715c458..b91687cb 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -180,6 +180,7 @@ type itemLine struct { result Result empty bool other bool + hidden bool } func (t *Terminal) inListWindow() bool { @@ -3282,7 +3283,7 @@ func (t *Terminal) printItem(result Result, line int, maxLine int, index int, cu // Avoid unnecessary redraw numLines, _ := t.numItemLines(item, maxLine-line+1) newLine := itemLine{valid: true, firstLine: line, numLines: numLines, cy: index + t.offset, current: current, selected: selected, label: label, - result: result, queryLen: len(t.input), width: 0, hasBar: line >= barRange[0] && line < barRange[1]} + result: result, queryLen: len(t.input), width: 0, hasBar: line >= barRange[0] && line < barRange[1], hidden: !matched} prevLine := t.prevLines[line] forceRedraw := !prevLine.valid || prevLine.other || prevLine.firstLine != newLine.firstLine printBar := func(lineNum int, forceRedraw bool) bool { @@ -3290,6 +3291,7 @@ func (t *Terminal) printItem(result Result, line int, maxLine int, index int, cu } if !forceRedraw && + prevLine.hidden == newLine.hidden && prevLine.numLines == newLine.numLines && prevLine.current == newLine.current && prevLine.selected == newLine.selected && |
