From 6b4358f641cc284302da176238f7190e30fe8622 Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Wed, 22 May 2024 20:39:09 +0900 Subject: An '--expect' key should execute actions bound to the key Fix #3810 --- src/terminal.go | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/terminal.go b/src/terminal.go index 8f154dae..93e70855 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -3559,14 +3559,6 @@ func (t *Terminal) Loop() error { scrollPreviewBy := func(amount int) { scrollPreviewTo(t.previewer.offset + amount) } - for key, ret := range t.expect { - if keyMatch(key, event) { - t.pressed = ret - t.reqBox.Set(reqClose, nil) - t.mutex.Unlock() - return nil - } - } actionsFor := func(eventType tui.EventType) []*action { return t.keymap[eventType.AsEvent()] @@ -4373,6 +4365,18 @@ func (t *Terminal) Loop() error { return true } + for key, ret := range t.expect { + if keyMatch(key, event) { + t.pressed = ret + if actions, found := t.keymap[key]; found { + doActions(actions) + } + t.reqBox.Set(reqClose, nil) + t.mutex.Unlock() + return nil + } + } + if t.jumping == jumpDisabled || len(actions) > 0 { // Break out of jump mode if any action is submitted to the server if t.jumping != jumpDisabled { -- cgit v1.2.3