diff options
author | Junegunn Choi <junegunn.c@gmail.com> | 2024-05-05 13:44:08 +0900 |
---|---|---|
committer | Junegunn Choi <junegunn.c@gmail.com> | 2024-05-05 16:49:30 +0900 |
commit | 2bd41f13304cefc19e7056cf4aeb02bc13c89d08 (patch) | |
tree | 4f83d3b11543edda4011168654ae9de01449159e /src/terminal.go | |
parent | c37cd11ca559ba617c13c80b8ba9294577e638eb (diff) |
Reduce flicking when changing the size of the preview window with --border
(sleep 1; find .) |
fzf --bind 'space:change-preview-window(60%|70%|80%|90%|border-left|border-right|border-vertical|border-top|border-horizontal|border-bottom|border-sharp|border-double|border-block|hidden|left|up|down|right|up|down|)' \
--preview 'cat {}' --color bg:red,preview-bg:blue \
--border --margin 3
Diffstat (limited to 'src/terminal.go')
-rw-r--r-- | src/terminal.go | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/terminal.go b/src/terminal.go index 558bcc67..7de1de6e 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -1288,7 +1288,8 @@ func (t *Terminal) resizeWindows(forcePreview bool) { t.pborder.Close() t.pborder = nil } - if t.pwindow != nil { + hadPreviewWindow := t.hasPreviewWindow() + if hadPreviewWindow { t.pwindow.Close() t.pwindow = nil } @@ -1387,6 +1388,9 @@ func (t *Terminal) resizeWindows(forcePreview bool) { pwidth = util.Max(0, pwidth) pheight = util.Max(0, pheight) t.pwindow = t.tui.NewWindow(y, x, pwidth, pheight, true, noBorder) + if !hadPreviewWindow { + t.pwindow.Erase() + } } verticalPad := 2 minPreviewHeight := 3 @@ -1649,7 +1653,7 @@ func (t *Terminal) printInfo() { case infoDefault: t.move(line+1, 0, t.separatorLen == 0) printSpinner() - t.move(line+1, 2, false) + t.window.Print(" ") // Margin pos = 2 case infoRight: t.move(line+1, 0, false) @@ -1714,6 +1718,7 @@ func (t *Terminal) printInfo() { printSeparator(fillLength, true) } t.window.CPrint(tui.ColInfo, output) + t.window.Print(" ") // Margin return } @@ -2922,6 +2927,7 @@ func (t *Terminal) Loop() { t.initFunc() t.termSize = t.tui.Size() t.resizeWindows(false) + t.window.Erase() t.printPrompt() t.printInfo() t.printHeader() |