summaryrefslogtreecommitdiffstats
path: root/src/terminal.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/terminal.go')
-rw-r--r--src/terminal.go10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/terminal.go b/src/terminal.go
index 295886dd..67f5cedf 100644
--- a/src/terminal.go
+++ b/src/terminal.go
@@ -251,6 +251,7 @@ type Terminal struct {
borderWidth int
count int
progress int
+ hasResultActions bool
hasFocusActions bool
hasLoadActions bool
triggerLoad bool
@@ -731,6 +732,7 @@ func NewTerminal(opts *Options, eventBox *util.EventBox) *Terminal {
ellipsis: opts.Ellipsis,
ansi: opts.Ansi,
tabstop: opts.Tabstop,
+ hasResultActions: false,
hasFocusActions: false,
hasLoadActions: false,
triggerLoad: false,
@@ -759,7 +761,7 @@ func NewTerminal(opts *Options, eventBox *util.EventBox) *Terminal {
killChan: make(chan int),
serverInputChan: make(chan []*action, 10),
serverOutputChan: make(chan string),
- eventChan: make(chan tui.Event, 4), // (load + zero|one) | (focus) | (GetChar)
+ eventChan: make(chan tui.Event, 5), // (load + result + zero|one) | (focus) | (GetChar)
tui: renderer,
initFunc: func() { renderer.Init() },
executing: util.NewAtomicBool(false),
@@ -803,6 +805,7 @@ func NewTerminal(opts *Options, eventBox *util.EventBox) *Terminal {
}
}
+ _, t.hasResultActions = t.keymap[tui.Result.AsEvent()]
_, t.hasFocusActions = t.keymap[tui.Focus.AsEvent()]
_, t.hasLoadActions = t.keymap[tui.Load.AsEvent()]
@@ -1076,6 +1079,9 @@ func (t *Terminal) UpdateList(merger *Merger) {
t.eventChan <- one
}
}
+ if t.hasResultActions {
+ t.eventChan <- tui.Result.AsEvent()
+ }
}
t.mutex.Unlock()
t.reqBox.Set(reqInfo, nil)
@@ -3189,7 +3195,7 @@ func (t *Terminal) Loop() {
}
select {
case event = <-t.eventChan:
- needBarrier = !event.Is(tui.Load, tui.Focus, tui.One, tui.Zero)
+ needBarrier = !event.Is(tui.Load, tui.Result, tui.Focus, tui.One, tui.Zero)
case serverActions := <-t.serverInputChan:
event = tui.Invalid.AsEvent()
if t.listenAddr == nil || t.listenAddr.IsLocal() || t.listenUnsafe {