summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2019-12-05 22:25:43 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2019-12-05 22:27:18 +0900
commit394d8cfd18819281f237f736ce60586df359541d (patch)
treed6a30c437cbf949fcbbbfc50c0c6071673491b75
parentef80bd401fdab3979a72696dac585f1cbd463efc (diff)
downloadfzf-394d8cfd18819281f237f736ce60586df359541d.tar.gz
Remove immediate flickering on reload action
-rw-r--r--CHANGELOG.md4
-rw-r--r--src/core.go10
2 files changed, 11 insertions, 3 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4754dd2d..91ff9619 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,10 @@ CHANGELOG
0.19.1 (WIP)
------
+- Removed the immediate flicking of the screen on `reload` action.
+ ```sh
+ : | fzf --bind 'change:reload:seq {q}' --phony
+ ```
- It is now possible to split a composite bind action over multiple `--bind`
expressions by prefixing the later ones with `+`.
```sh
diff --git a/src/core.go b/src/core.go
index 9d118a49..37513f5c 100644
--- a/src/core.go
+++ b/src/core.go
@@ -224,10 +224,12 @@ func Run(opts *Options, revision string) {
// Event coordination
reading := true
+ clearCache := false
ticks := 0
var nextCommand *string
restart := func(command string) {
reading = true
+ clearCache = true
chunkList.Clear()
header = make([]string, 0, opts.HeaderLines)
go reader.restart(command)
@@ -250,11 +252,10 @@ func Run(opts *Options, revision string) {
switch evt {
case EvtReadNew, EvtReadFin:
- clearCache := false
if evt == EvtReadFin && nextCommand != nil {
- clearCache = true
restart(*nextCommand)
nextCommand = nil
+ break
} else {
reading = reading && evt == EvtReadNew
}
@@ -264,6 +265,7 @@ func Run(opts *Options, revision string) {
terminal.UpdateList(PassMerger(&snapshot, opts.Tac))
}
matcher.Reset(snapshot, input(), false, !reading, sort, clearCache)
+ clearCache = false
case EvtSearchNew:
var command *string
@@ -279,9 +281,11 @@ func Run(opts *Options, revision string) {
} else {
restart(*command)
}
+ break
}
snapshot, _ := chunkList.Snapshot()
- matcher.Reset(snapshot, input(), true, !reading, sort, command != nil)
+ matcher.Reset(snapshot, input(), true, !reading, sort, clearCache)
+ clearCache = false
delay = false
case EvtSearchProgress: