summaryrefslogtreecommitdiff
path: root/src/terminal.go
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2025-06-21 12:40:37 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2025-06-21 12:40:56 +0900
commitc35d9cff7d26dc0389db888c461c660147613f7d (patch)
tree456463364527d24da3be79597ee4cbc447417ba6 /src/terminal.go
parent549ce3cf6c622aad9a2d5ecde491681244327681 (diff)
downloadfzf-c35d9cff7d26dc0389db888c461c660147613f7d.tar.gz
Avoid full redraw when changing header and footer windows
Diffstat (limited to 'src/terminal.go')
-rw-r--r--src/terminal.go13
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)
}