From 77f9f4664ac9002358735f152ea429e2a578aee2 Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Sat, 29 Apr 2023 21:27:30 +0900 Subject: Fix search not triggered when query change and reload happen at the same time Fix #3268 --- src/core.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/core.go') diff --git a/src/core.go b/src/core.go index a4751a55..d4c06f9f 100644 --- a/src/core.go +++ b/src/core.go @@ -299,10 +299,12 @@ func Run(opts *Options, version string, revision string) { case EvtSearchNew: var command *string + var changed bool switch val := value.(type) { case searchRequest: sort = val.sort command = val.command + changed = val.changed if command != nil { useSnapshot = val.sync } @@ -314,10 +316,17 @@ func Run(opts *Options, version string, revision string) { } else { restart(*command) } + } + if !changed { break } if !useSnapshot { - snapshot, _ = chunkList.Snapshot() + newSnapshot, _ := chunkList.Snapshot() + // We want to avoid showing empty list when reload is triggered + // and the query string is changed at the same time i.e. command != nil && changed + if command == nil || len(newSnapshot) > 0 { + snapshot = newSnapshot + } } reset := !useSnapshot && clearCache() matcher.Reset(snapshot, input(reset), true, !reading, sort, reset) -- cgit v1.2.3