diff options
Diffstat (limited to 'src/terminal.go')
-rw-r--r-- | src/terminal.go | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/src/terminal.go b/src/terminal.go index 2fa13984..b683c459 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -676,6 +676,8 @@ func (t *Terminal) resizeWindows() { } if t.pborder != nil { t.pborder.Close() + } + if t.pwindow != nil { t.pwindow.Close() } @@ -700,19 +702,28 @@ func (t *Terminal) resizeWindows() { noBorder := tui.MakeBorderStyle(tui.BorderNone, t.unicode) if previewVisible { createPreviewWindow := func(y int, x int, w int, h int) { - previewBorder := tui.MakeBorderStyle(tui.BorderRounded, t.unicode) - if !t.preview.border { - previewBorder = tui.MakeTransparentBorder() + pwidth := w + pheight := h + if t.preview.border != tui.BorderNone { + previewBorder := tui.MakeBorderStyle(t.preview.border, t.unicode) + t.pborder = t.tui.NewWindow(y, x, w, h, true, previewBorder) + pwidth -= 4 + pheight -= 2 + x += 2 + y += 1 + } else { + previewBorder := tui.MakeTransparentBorder() + t.pborder = t.tui.NewWindow(y, x, w, h, true, previewBorder) + pwidth -= 2 + x += 1 } - t.pborder = t.tui.NewWindow(y, x, w, h, true, previewBorder) - pwidth := w - 4 // ncurses auto-wraps the line when the cursor reaches the right-end of // the window. To prevent unintended line-wraps, we use the width one // column larger than the desired value. if !t.preview.wrap && t.tui.DoesAutoWrap() { pwidth += 1 } - t.pwindow = t.tui.NewWindow(y+1, x+2, pwidth, h-2, true, noBorder) + t.pwindow = t.tui.NewWindow(y, x, pwidth, pheight, true, noBorder) } switch t.preview.position { case posUp: @@ -1210,7 +1221,10 @@ func (t *Terminal) refresh() { windows = append(windows, t.border) } if t.hasPreviewWindow() { - windows = append(windows, t.pborder, t.pwindow) + if t.pborder != nil { + windows = append(windows, t.pborder) + } + windows = append(windows, t.pwindow) } windows = append(windows, t.window) t.tui.RefreshWindows(windows) |