An '--expect' key should execute actions bound to the key

Fix #3810
This commit is contained in:
Junegunn Choi
2024-05-22 20:39:09 +09:00
parent 552158f3ad
commit 6b4358f641
2 changed files with 19 additions and 8 deletions

View File

@@ -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 {