diff --git a/ui.go b/ui.go index 21fa7de..35f25d4 100644 --- a/ui.go +++ b/ui.go @@ -249,20 +249,17 @@ func onMessagesViewInputCapture(e *tcell.EventKey) *tcell.EventKey { if len(messagesView.GetHighlights()) == 0 { selectedMessage = len(ms) - messagesView. - Highlight(ms[selectedMessage-1].ID). - ScrollToHighlight() } else { selectedMessage-- if selectedMessage < 1 { selectedMessage = 1 } - - messagesView. - Highlight(ms[selectedMessage-1].ID). - ScrollToHighlight() } + messagesView. + Highlight(ms[selectedMessage-1].ID). + ScrollToHighlight() + return nil case conf.Keybindings.MessagesView.SelectNext: ms := selectedChannel.Messages @@ -272,20 +269,17 @@ func onMessagesViewInputCapture(e *tcell.EventKey) *tcell.EventKey { if len(messagesView.GetHighlights()) == 0 { selectedMessage = len(ms) - messagesView. - Highlight(ms[selectedMessage-1].ID). - ScrollToHighlight() } else { selectedMessage++ if selectedMessage > len(ms) { selectedMessage = len(ms) } - - messagesView. - Highlight(ms[selectedMessage-1].ID). - ScrollToHighlight() } + messagesView. + Highlight(ms[selectedMessage-1].ID). + ScrollToHighlight() + return nil case conf.Keybindings.MessagesView.SelectFirst: ms := selectedChannel.Messages @@ -313,9 +307,18 @@ func onMessagesViewInputCapture(e *tcell.EventKey) *tcell.EventKey { return nil } - messageInputField.SetTitle( - "Replying to " + ms[selectedMessage-1].Author.Username, - ) + hs := messagesView.GetHighlights() + if len(hs) == 0 { + return nil + } + + for i, m := range ms { + if m.ID == hs[0] { + selectedMessage = i + 1 + } + } + + messageInputField.SetTitle("Replying to " + ms[selectedMessage-1].Author.Username) app.SetFocus(messageInputField) case conf.Keybindings.MessagesView.ReplyMention: ms := selectedChannel.Messages @@ -323,6 +326,17 @@ func onMessagesViewInputCapture(e *tcell.EventKey) *tcell.EventKey { return nil } + hs := messagesView.GetHighlights() + if len(hs) == 0 { + return nil + } + + for i, m := range ms { + if m.ID == hs[0] { + selectedMessage = i + 1 + } + } + messageInputField.SetTitle("[@] Replying to " + ms[selectedMessage-1].Author.Username) app.SetFocus(messageInputField) }