summaryrefslogtreecommitdiffstats
path: root/src/tui
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/tui
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/tui')
-rw-r--r--src/tui/light.go31
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))
}
}