m/fzf
1
0
mirror of https://github.com/junegunn/fzf.git synced 2025-11-15 14:53:47 -05:00

Avoid full redraw when changing header and footer windows

This commit is contained in:
Junegunn Choi
2025-06-21 12:40:37 +09:00
parent 549ce3cf6c
commit c35d9cff7d

View File

@@ -448,6 +448,7 @@ const (
reqReinit reqReinit
reqFullRedraw reqFullRedraw
reqResize reqResize
reqRedraw
reqRedrawInputLabel reqRedrawInputLabel
reqRedrawHeaderLabel reqRedrawHeaderLabel
reqRedrawFooterLabel reqRedrawFooterLabel
@@ -5137,12 +5138,16 @@ func (t *Terminal) Loop() error {
case reqReinit: case reqReinit:
t.tui.Resume(t.fullscreen, true) t.tui.Resume(t.fullscreen, true)
t.fullRedraw() t.fullRedraw()
case reqResize, reqFullRedraw: case reqResize, reqFullRedraw, reqRedraw:
if req == reqResize { if req == reqResize {
t.termSize = t.tui.Size() t.termSize = t.tui.Size()
} }
wasHidden := t.pwindow == nil wasHidden := t.pwindow == nil
t.fullRedraw() if req == reqRedraw {
t.printAll()
} else {
t.fullRedraw()
}
if wasHidden && t.hasPreviewWindow() { if wasHidden && t.hasPreviewWindow() {
refreshPreview(t.previewOpts.command) refreshPreview(t.previewOpts.command)
} }
@@ -5624,7 +5629,7 @@ func (t *Terminal) Loop() error {
if t.changeHeader(header) { if t.changeHeader(header) {
if t.headerWindow != nil { if t.headerWindow != nil {
// Need to resize header window // Need to resize header window
req(reqFullRedraw) req(reqRedraw)
} else { } else {
req(reqHeader, reqList, reqPrompt, reqInfo) req(reqHeader, reqList, reqPrompt, reqInfo)
} }
@@ -5635,7 +5640,7 @@ func (t *Terminal) Loop() error {
case actChangeFooter, actTransformFooter, actBgTransformFooter: case actChangeFooter, actTransformFooter, actBgTransformFooter:
capture(false, func(footer string) { capture(false, func(footer string) {
if t.changeFooter(footer) { if t.changeFooter(footer) {
req(reqFullRedraw) req(reqRedraw)
} else { } else {
req(reqFooter) req(reqFooter)
} }