From 6fd4be580b65913299f2306998fc3f133c259fb2 Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Sat, 4 Mar 2017 14:09:36 +0900 Subject: Use alternate screen only when the value of height is 100% Do not automatically decide to use alternate screen when the value of height exceeds the height of the terminal. # Use alternate screen fzf fzf --height 100% fzf --no-height # Still use current screen fzf --height 10000 --- src/tui/light.go | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) (limited to 'src/tui') diff --git a/src/tui/light.go b/src/tui/light.go index 2af31c4b..3f6985f5 100644 --- a/src/tui/light.go +++ b/src/tui/light.go @@ -107,7 +107,7 @@ type LightWindow struct { bg Color } -func NewLightRenderer(theme *ColorTheme, forceBlack bool, mouse bool, tabstop int, clearOnExit bool, maxHeightFunc func(int) int) Renderer { +func NewLightRenderer(theme *ColorTheme, forceBlack bool, mouse bool, tabstop int, clearOnExit bool, fullscreen bool, maxHeightFunc func(int) int) Renderer { r := LightRenderer{ theme: theme, forceBlack: forceBlack, @@ -116,7 +116,7 @@ func NewLightRenderer(theme *ColorTheme, forceBlack bool, mouse bool, tabstop in ttyin: openTtyIn(), yoffset: 0, tabstop: tabstop, - fullscreen: false, + fullscreen: fullscreen, upOneLine: false, maxHeightFunc: maxHeightFunc} return &r @@ -176,11 +176,7 @@ func (r *LightRenderer) Init() { } r.origState = origState terminal.MakeRaw(fd) - terminalHeight, capHeight := r.updateTerminalSize() - if capHeight == terminalHeight { - r.fullscreen = true - r.height = terminalHeight - } + r.updateTerminalSize() initTheme(r.theme, r.defaultTheme(), r.forceBlack) if r.fullscreen { @@ -242,20 +238,15 @@ func getEnv(name string, defaultValue int) int { return atoi(env, defaultValue) } -func (r *LightRenderer) updateTerminalSize() (int, int) { +func (r *LightRenderer) updateTerminalSize() { width, height, err := terminal.GetSize(r.fd()) if err == nil { r.width = width - if r.fullscreen { - r.height = height - } else { - r.height = r.maxHeightFunc(height) - } + r.height = r.maxHeightFunc(height) } else { r.width = getEnv("COLUMNS", defaultWidth) r.height = r.maxHeightFunc(getEnv("LINES", defaultHeight)) } - return height, r.height } func (r *LightRenderer) getch(nonblock bool) (int, bool) { -- cgit v1.2.3