diff options
Diffstat (limited to 'src/terminal.go')
-rw-r--r-- | src/terminal.go | 10 |
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 { |