Remove immediate flickering on reload action

This commit is contained in:
Junegunn Choi 2019-12-05 22:25:43 +09:00
parent ef80bd401f
commit 394d8cfd18
No known key found for this signature in database
GPG Key ID: 254BC280FEF9C627
2 changed files with 11 additions and 3 deletions

View File

@ -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

View File

@ -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: