summaryrefslogtreecommitdiffstats
path: root/src/terminal.go
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2024-05-05 13:44:08 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2024-05-05 16:49:30 +0900
commit2bd41f13304cefc19e7056cf4aeb02bc13c89d08 (patch)
tree4f83d3b11543edda4011168654ae9de01449159e /src/terminal.go
parentc37cd11ca559ba617c13c80b8ba9294577e638eb (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.go10
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()