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/tui | |
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/tui')
-rw-r--r-- | src/tui/light.go | 31 |
1 files changed, 11 insertions, 20 deletions
diff --git a/src/tui/light.go b/src/tui/light.go index 244891a9..a045b783 100644 --- a/src/tui/light.go +++ b/src/tui/light.go @@ -821,44 +821,32 @@ func (w *LightWindow) drawBorderHorizontal(top, bottom bool) { color = ColPreviewBorder } hw := runeWidth(w.border.top) - pad := repeat(' ', w.width/hw) - - w.Move(0, 0) if top { + w.Move(0, 0) w.CPrint(color, repeat(w.border.top, w.width/hw)) - } else { - w.CPrint(color, pad) - } - - for y := 1; y < w.height-1; y++ { - w.Move(y, 0) - w.CPrint(color, pad) } - w.Move(w.height-1, 0) if bottom { + w.Move(w.height-1, 0) w.CPrint(color, repeat(w.border.bottom, w.width/hw)) - } else { - w.CPrint(color, pad) } } func (w *LightWindow) drawBorderVertical(left, right bool) { - width := w.width - 2 - if !left || !right { - width++ - } + vw := runeWidth(w.border.left) color := ColBorder if w.preview { color = ColPreviewBorder } for y := 0; y < w.height; y++ { - w.Move(y, 0) if left { + w.Move(y, 0) w.CPrint(color, string(w.border.left)) + w.CPrint(color, " ") // Margin } - w.CPrint(color, repeat(' ', width)) if right { + w.Move(y, w.width-vw-1) + w.CPrint(color, " ") // Margin w.CPrint(color, string(w.border.right)) } } @@ -880,7 +868,10 @@ func (w *LightWindow) drawBorderAround(onlyHorizontal bool) { for y := 1; y < w.height-1; y++ { w.Move(y, 0) w.CPrint(color, string(w.border.left)) - w.CPrint(color, repeat(' ', w.width-vw*2)) + w.CPrint(color, " ") // Margin + + w.Move(y, w.width-vw-1) + w.CPrint(color, " ") // Margin w.CPrint(color, string(w.border.right)) } } |