summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2016-01-16 18:07:50 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2016-01-16 18:07:50 +0900
commit8695b5e319e02efbfdf70800dce1c73d40378d86 (patch)
treecae8b94cbc46c706ecfaf4a7c619ce6e055a807e
parent95970164ad0f03cd1a95aec2ad3d3cba180c0308 (diff)
Reduce the initial delay when --tac is not given
fzf defers the initial rendering of the screen up to 100ms if the input stream is ongoing to prevent unnecessary redraw during the initial phase. However, 100ms delay is quite noticeable and might give the impression that fzf is not snappy enough. This commit reduces the maximum delay down to 20ms when --tac is not specified, in which case the input list quickly fills the entire screen.
-rw-r--r--src/constants.go3
-rw-r--r--src/terminal.go10
2 files changed, 11 insertions, 2 deletions
diff --git a/src/constants.go b/src/constants.go
index 0145958c..6f6898d5 100644
--- a/src/constants.go
+++ b/src/constants.go
@@ -18,7 +18,8 @@ const (
defaultCommand = `find . -path '*/\.*' -prune -o -type f -print -o -type l -print 2> /dev/null | sed s/^..//`
// Terminal
- initialDelay = 100 * time.Millisecond
+ initialDelay = 20 * time.Millisecond
+ initialDelayTac = 100 * time.Millisecond
spinnerDuration = 200 * time.Millisecond
// Matcher
diff --git a/src/terminal.go b/src/terminal.go
index ab11587f..e5b247d7 100644
--- a/src/terminal.go
+++ b/src/terminal.go
@@ -22,6 +22,7 @@ import (
// Terminal represents terminal input/output
type Terminal struct {
+ initDelay time.Duration
inlineInfo bool
prompt string
reverse bool
@@ -198,7 +199,14 @@ func NewTerminal(opts *Options, eventBox *util.EventBox) *Terminal {
header = reverseStringArray(opts.Header)
}
_tabStop = opts.Tabstop
+ var delay time.Duration
+ if opts.Tac {
+ delay = initialDelayTac
+ } else {
+ delay = initialDelay
+ }
return &Terminal{
+ initDelay: delay,
inlineInfo: opts.InlineInfo,
prompt: opts.Prompt,
reverse: opts.Reverse,
@@ -751,7 +759,7 @@ func (t *Terminal) Loop() {
t.printHeader()
t.mutex.Unlock()
go func() {
- timer := time.NewTimer(initialDelay)
+ timer := time.NewTimer(t.initDelay)
<-timer.C
t.reqBox.Set(reqRefresh, nil)
}()