diff options
| author | Junegunn Choi <junegunn.c@gmail.com> | 2025-06-21 12:40:37 +0900 |
|---|---|---|
| committer | Junegunn Choi <junegunn.c@gmail.com> | 2025-06-21 12:40:56 +0900 |
| commit | c35d9cff7d26dc0389db888c461c660147613f7d (patch) | |
| tree | 456463364527d24da3be79597ee4cbc447417ba6 | |
| parent | 549ce3cf6c622aad9a2d5ecde491681244327681 (diff) | |
| download | fzf-c35d9cff7d26dc0389db888c461c660147613f7d.tar.gz | |
Avoid full redraw when changing header and footer windows
| -rw-r--r-- | src/terminal.go | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/terminal.go b/src/terminal.go index cf6bb4b4..1171163c 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -448,6 +448,7 @@ const ( reqReinit reqFullRedraw reqResize + reqRedraw reqRedrawInputLabel reqRedrawHeaderLabel reqRedrawFooterLabel @@ -5137,12 +5138,16 @@ func (t *Terminal) Loop() error { case reqReinit: t.tui.Resume(t.fullscreen, true) t.fullRedraw() - case reqResize, reqFullRedraw: + case reqResize, reqFullRedraw, reqRedraw: if req == reqResize { t.termSize = t.tui.Size() } wasHidden := t.pwindow == nil - t.fullRedraw() + if req == reqRedraw { + t.printAll() + } else { + t.fullRedraw() + } if wasHidden && t.hasPreviewWindow() { refreshPreview(t.previewOpts.command) } @@ -5624,7 +5629,7 @@ func (t *Terminal) Loop() error { if t.changeHeader(header) { if t.headerWindow != nil { // Need to resize header window - req(reqFullRedraw) + req(reqRedraw) } else { req(reqHeader, reqList, reqPrompt, reqInfo) } @@ -5635,7 +5640,7 @@ func (t *Terminal) Loop() error { case actChangeFooter, actTransformFooter, actBgTransformFooter: capture(false, func(footer string) { if t.changeFooter(footer) { - req(reqFullRedraw) + req(reqRedraw) } else { req(reqFooter) } |
