diff --git a/cmd/messages_text.go b/cmd/messages_text.go index c2d829e..de1a079 100644 --- a/cmd/messages_text.go +++ b/cmd/messages_text.go @@ -75,7 +75,8 @@ func (mt *MessagesText) drawMsgs(cID discord.ChannelID) { } func (mt *MessagesText) reset() { - app.messagesText.selectedMessageID = 0 + mt.selectedMessageID = 0 + app.messageInput.replyMessageID = 0 mt.SetTitle("") mt.Clear() @@ -194,6 +195,11 @@ func (mt *MessagesText) getSelectedMessageIndex() (int, error) { func (mt *MessagesText) onInputCapture(event *tcell.EventKey) *tcell.EventKey { switch event.Name() { + case mt.cfg.Keys.MessagesText.Cancel: + mt.selectedMessageID = 0 + app.messageInput.replyMessageID = 0 + mt.Highlight() + case mt.cfg.Keys.MessagesText.SelectPrevious, mt.cfg.Keys.MessagesText.SelectNext, mt.cfg.Keys.MessagesText.SelectFirst, mt.cfg.Keys.MessagesText.SelectLast, mt.cfg.Keys.MessagesText.SelectReply, mt.cfg.Keys.MessagesText.SelectPin: mt._select(event.Name()) case mt.cfg.Keys.MessagesText.YankID: diff --git a/internal/config/keys.go b/internal/config/keys.go index f433171..996c4a1 100644 --- a/internal/config/keys.go +++ b/internal/config/keys.go @@ -35,6 +35,7 @@ type ( Reply string `toml:"reply"` ReplyMention string `toml:"reply_mention"` + Cancel string `toml:"cancel"` Delete string `toml:"delete"` YankID string `toml:"yank_id"` YankContent string `toml:"yank_content"` @@ -83,6 +84,7 @@ func defaultKeys() Keys { Reply: "Rune[r]", ReplyMention: "Rune[R]", + Cancel: "Esc", Delete: "Rune[d]", YankContent: "Rune[y]", YankURL: "Rune[i]",