From c35d9cff7d26dc0389db888c461c660147613f7d Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Sat, 21 Jun 2025 12:40:37 +0900 Subject: [PATCH] Avoid full redraw when changing header and footer windows --- src/terminal.go | 13 +++++++++---- 1 file 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) }