diff options
author | Junegunn Choi <junegunn.c@gmail.com> | 2019-12-09 21:32:58 +0900 |
---|---|---|
committer | Junegunn Choi <junegunn.c@gmail.com> | 2019-12-09 21:32:58 +0900 |
commit | 2b725a4db5e973d7ce90d1ac0996dcfd3c3f0116 (patch) | |
tree | c9eea79293181e3049ac974d3f8cc892bd27bf77 /src/core.go | |
parent | af1a5f130bbd2464131ec2ae91c538ace6801a73 (diff) |
Defer resetting multi-selection on reload
Diffstat (limited to 'src/core.go')
-rw-r--r-- | src/core.go | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/core.go b/src/core.go index 985c177f..ff558497 100644 --- a/src/core.go +++ b/src/core.go @@ -224,12 +224,14 @@ func Run(opts *Options, revision string) { // Event coordination reading := true - clearCache := false + clearCache := util.Once(false) + clearSelection := util.Once(false) ticks := 0 var nextCommand *string restart := func(command string) { reading = true - clearCache = true + clearCache = util.Once(true) + clearSelection = util.Once(true) chunkList.Clear() header = make([]string, 0, opts.HeaderLines) go reader.restart(command) @@ -262,10 +264,10 @@ func Run(opts *Options, revision string) { snapshot, count := chunkList.Snapshot() terminal.UpdateCount(count, !reading, value.(*string)) if opts.Sync { - terminal.UpdateList(PassMerger(&snapshot, opts.Tac)) + opts.Sync = false + terminal.UpdateList(PassMerger(&snapshot, opts.Tac), false) } - matcher.Reset(snapshot, input(), false, !reading, sort, clearCache) - clearCache = false + matcher.Reset(snapshot, input(), false, !reading, sort, clearCache()) case EvtSearchNew: var command *string @@ -284,8 +286,7 @@ func Run(opts *Options, revision string) { break } snapshot, _ := chunkList.Snapshot() - matcher.Reset(snapshot, input(), true, !reading, sort, clearCache) - clearCache = false + matcher.Reset(snapshot, input(), true, !reading, sort, clearCache()) delay = false case EvtSearchProgress: @@ -327,7 +328,7 @@ func Run(opts *Options, revision string) { terminal.startChan <- true } } - terminal.UpdateList(val) + terminal.UpdateList(val, clearSelection()) } } } |