diff options
author | Junegunn Choi <junegunn.c@gmail.com> | 2017-01-24 00:23:16 +0900 |
---|---|---|
committer | Junegunn Choi <junegunn.c@gmail.com> | 2017-01-24 00:23:16 +0900 |
commit | 6a75e30941af50a7197ef5e96c07a8605aec9a53 (patch) | |
tree | 8bebfe4fec3ee72b53c4fd4d69a5ab724ee7d337 /src | |
parent | a3244c4892fdf637696f260d39f15ed4c20518e1 (diff) |
Allow invisible preview window (--preview-window 0)
Close #820
Diffstat (limited to 'src')
-rw-r--r-- | src/options.go | 2 | ||||
-rw-r--r-- | src/terminal.go | 32 |
2 files changed, 20 insertions, 14 deletions
diff --git a/src/options.go b/src/options.go index eb21ee7a..2e96c2c5 100644 --- a/src/options.go +++ b/src/options.go @@ -823,7 +823,7 @@ func parsePreviewWindow(opts *previewOpts, input string) { opts.wrap = false tokens := strings.Split(input, ":") - sizeRegex := regexp.MustCompile("^[1-9][0-9]*%?$") + sizeRegex := regexp.MustCompile("^[0-9]+%?$") for _, token := range tokens { switch token { case "hidden": diff --git a/src/terminal.go b/src/terminal.go index 0786b95d..d06f7521 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -509,9 +509,11 @@ func (t *Terminal) resizeWindows() { } } } + + previewVisible := t.isPreviewEnabled() && t.preview.size.size > 0 minAreaWidth := minWidth minAreaHeight := minHeight - if t.isPreviewEnabled() { + if previewVisible { switch t.preview.position { case posUp, posDown: minAreaHeight *= 2 @@ -531,7 +533,7 @@ func (t *Terminal) resizeWindows() { width := screenWidth - marginInt[1] - marginInt[3] height := screenHeight - marginInt[0] - marginInt[2] - if t.isPreviewEnabled() { + if previewVisible { createPreviewWindow := func(y int, x int, w int, h int) { t.bwindow = t.tui.NewWindow(y, x, w, h, true) pwidth := w - 4 @@ -889,7 +891,7 @@ func numLinesMax(str string, max int) int { } func (t *Terminal) printPreview() { - if !t.isPreviewEnabled() { + if !t.hasPreviewWindow() { return } t.pwindow.Erase() @@ -974,7 +976,7 @@ func (t *Terminal) printAll() { func (t *Terminal) refresh() { if !t.suppress { - if t.isPreviewEnabled() { + if t.hasPreviewWindow() { t.tui.RefreshWindows([]tui.Window{t.bwindow, t.pwindow, t.window}) } else { t.tui.RefreshWindows([]tui.Window{t.window}) @@ -1107,12 +1109,16 @@ func (t *Terminal) executeCommand(template string, items []*Item) { t.refresh() } -func (t *Terminal) hasPreviewWindow() bool { +func (t *Terminal) hasPreviewer() bool { return t.previewBox != nil } func (t *Terminal) isPreviewEnabled() bool { - return t.previewBox != nil && t.previewer.enabled + return t.hasPreviewer() && t.previewer.enabled +} + +func (t *Terminal) hasPreviewWindow() bool { + return t.pwindow != nil && t.isPreviewEnabled() } func (t *Terminal) currentItem() *Item { @@ -1174,7 +1180,7 @@ func (t *Terminal) Loop() { }() } - if t.hasPreviewWindow() { + if t.hasPreviewer() { go func() { for { var request *Item @@ -1358,7 +1364,7 @@ func (t *Terminal) Loop() { t.mutex.Unlock() return false case actTogglePreview: - if t.hasPreviewWindow() { + if t.hasPreviewer() { t.previewer.enabled = !t.previewer.enabled t.tui.Clear() t.resizeWindows() @@ -1374,19 +1380,19 @@ func (t *Terminal) Loop() { t.mutex.Unlock() return false case actPreviewUp: - if t.isPreviewEnabled() { + if t.hasPreviewWindow() { scrollPreview(-1) } case actPreviewDown: - if t.isPreviewEnabled() { + if t.hasPreviewWindow() { scrollPreview(1) } case actPreviewPageUp: - if t.isPreviewEnabled() { + if t.hasPreviewWindow() { scrollPreview(-t.pwindow.Height()) } case actPreviewPageDown: - if t.isPreviewEnabled() { + if t.hasPreviewWindow() { scrollPreview(t.pwindow.Height()) } case actBeginningOfLine: @@ -1563,7 +1569,7 @@ func (t *Terminal) Loop() { } t.vmove(me.S) req(reqList) - } else if t.isPreviewEnabled() && t.pwindow.Enclose(my, mx) { + } else if t.hasPreviewWindow() && t.pwindow.Enclose(my, mx) { scrollPreview(-me.S) } } else if t.window.Enclose(my, mx) { |