summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2019-03-29 15:02:31 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2019-03-29 15:02:31 +0900
commitf39ab3875efc2432d94fedf5bcecee08c40161e6 (patch)
treebdebe49a4ceb0509bde9e2a552bdcea9a7d1cdb4 /src
parent82efe6c60d3884f0d79ce12375eda669d10d24b0 (diff)
downloadfzf-f39ab3875efc2432d94fedf5bcecee08c40161e6.tar.gz
Redraw prompt only when necessary
Diffstat (limited to 'src')
-rw-r--r--src/terminal.go10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/terminal.go b/src/terminal.go
index 1741b4d6..ca811c43 100644
--- a/src/terminal.go
+++ b/src/terminal.go
@@ -1635,7 +1635,8 @@ func (t *Terminal) Loop() {
t.mutex.Lock()
previousInput := t.input
- events := []util.EventType{reqPrompt}
+ previousCx := t.cx
+ events := []util.EventType{}
req := func(evts ...util.EventType) {
for _, event := range evts {
events = append(events, event)
@@ -1996,7 +1997,6 @@ func (t *Terminal) Loop() {
t.jumping = jumpDisabled
req(reqList)
}
- t.mutex.Unlock() // Must be unlocked before touching reqBox
if changed {
if t.isPreviewEnabled() {
@@ -2007,6 +2007,12 @@ func (t *Terminal) Loop() {
}
t.eventBox.Set(EvtSearchNew, t.sort)
}
+
+ if changed || t.cx != previousCx {
+ req(reqPrompt)
+ }
+
+ t.mutex.Unlock() // Must be unlocked before touching reqBox
for _, event := range events {
t.reqBox.Set(event, nil)
}