summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core.go11
-rw-r--r--src/terminal.go3
2 files changed, 12 insertions, 2 deletions
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)
diff --git a/src/terminal.go b/src/terminal.go
index 3dc2062f..b0771f16 100644
--- a/src/terminal.go
+++ b/src/terminal.go
@@ -408,6 +408,7 @@ type searchRequest struct {
sort bool
sync bool
command *string
+ changed bool
}
type previewRequest struct {
@@ -3622,7 +3623,7 @@ func (t *Terminal) Loop() {
t.mutex.Unlock() // Must be unlocked before touching reqBox
if changed || newCommand != nil {
- t.eventBox.Set(EvtSearchNew, searchRequest{sort: t.sort, sync: reloadSync, command: newCommand})
+ t.eventBox.Set(EvtSearchNew, searchRequest{sort: t.sort, sync: reloadSync, command: newCommand, changed: changed})
}
for _, event := range events {
t.reqBox.Set(event, nil)