diff options
| author | Junegunn Choi <junegunn.c@gmail.com> | 2023-01-16 19:34:28 +0900 |
|---|---|---|
| committer | Junegunn Choi <junegunn.c@gmail.com> | 2023-01-16 19:34:28 +0900 |
| commit | 8b299a29c7024a0578c950bb9d1fbdb58fe4ac6c (patch) | |
| tree | 3a8d2c1168f775cc739de3ca4c9f928c2ea83bb5 /src/tui | |
| parent | 3109b865d202c73c7065a3142b7ed317ce9b9382 (diff) | |
| download | fzf-8b299a29c7024a0578c950bb9d1fbdb58fe4ac6c.tar.gz | |
Fix rendering of double-column borders
Diffstat (limited to 'src/tui')
| -rw-r--r-- | src/tui/tcell.go | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/tui/tcell.go b/src/tui/tcell.go index f1f18e24..366cb775 100644 --- a/src/tui/tcell.go +++ b/src/tui/tcell.go @@ -695,13 +695,26 @@ func (w *TcellWindow) drawBorder() { hw := runewidth.RuneWidth(w.borderStyle.horizontal) switch shape { case BorderRounded, BorderSharp, BorderBold, BorderDouble, BorderHorizontal, BorderTop: - for x := left; x <= right-hw; x += hw { + max := right - 2*hw + if shape == BorderHorizontal || shape == BorderTop { + max = right - hw + } + // tcell has an issue displaying two overlapping wide runes + // e.g. SetContent( HH ) + // SetContent( TR ) + // ================== + // ( HH ) => TR is ignored + for x := left; x <= max; x += hw { _screen.SetContent(x, top, w.borderStyle.horizontal, nil, style) } } switch shape { case BorderRounded, BorderSharp, BorderBold, BorderDouble, BorderHorizontal, BorderBottom: - for x := left; x <= right-hw; x += hw { + max := right - 2*hw + if shape == BorderHorizontal || shape == BorderBottom { + max = right - hw + } + for x := left; x <= max; x += hw { _screen.SetContent(x, bot-1, w.borderStyle.horizontal, nil, style) } } @@ -713,8 +726,9 @@ func (w *TcellWindow) drawBorder() { } switch shape { case BorderRounded, BorderSharp, BorderBold, BorderDouble, BorderVertical, BorderRight: + vw := runewidth.RuneWidth(w.borderStyle.vertical) for y := top; y < bot; y++ { - _screen.SetContent(right-hw, y, w.borderStyle.vertical, nil, style) + _screen.SetContent(right-vw, y, w.borderStyle.vertical, nil, style) } } switch shape { |
