diff --git a/ui/message-view.go b/ui/message-view.go index f1d6f67..9e9e9a7 100644 --- a/ui/message-view.go +++ b/ui/message-view.go @@ -664,8 +664,10 @@ func (view *MessageView) Draw(screen mauview.Screen) { index := indexOffset + line msg := view.msgBuffer[index] + header := view.showModernHeader(msg) + if msg == prevMsg { - debug.Print("Unexpected re-encounter of", msg, msg.Height(view.showModernHeader(msg)), "at", line, index) + debug.Print("Unexpected re-encounter of", msg, msg.Height(header), "at", line, index) line++ continue } @@ -691,7 +693,7 @@ func (view *MessageView) Draw(screen mauview.Screen) { line-- } offset := 0 - if view.showModernHeader(msg) { + if header { offset = 1 boldStyle := tcell.StyleDefault.Bold(true) @@ -705,8 +707,8 @@ func (view *MessageView) Draw(screen mauview.Screen) { boldStyle.Foreground(msg.TimestampColor()), ) } - msg.Draw(mauview.NewProxyScreen(screen, messageX, line+offset, view.width()-messageX, msg.Height(view.showModernHeader(msg)))) - line += msg.Height(view.showModernHeader(msg)) + msg.Draw(mauview.NewProxyScreen(screen, messageX, line+offset, view.width()-messageX, msg.Height(header)), header) + line += msg.Height(header) prevMsg = msg } diff --git a/ui/messages/base.go b/ui/messages/base.go index 4f6481a..62421a8 100644 --- a/ui/messages/base.go +++ b/ui/messages/base.go @@ -311,12 +311,18 @@ func (msg *UIMessage) SetIsHighlight(isHighlight bool) { msg.IsHighlight = isHighlight } -func (msg *UIMessage) DrawReactions(screen mauview.Screen) { +func (msg *UIMessage) DrawReactions(screen mauview.Screen, modernHeader bool) { if len(msg.Reactions) == 0 { return } + + diff := 1 + if modernHeader { + diff = 2 + } + width, height := screen.Size() - screen = mauview.NewProxyScreen(screen, 0, height-1, width, 1) + screen = mauview.NewProxyScreen(screen, 0, height-diff, width, 1) x := 0 for _, reaction := range msg.Reactions { @@ -328,10 +334,10 @@ func (msg *UIMessage) DrawReactions(screen mauview.Screen) { } } -func (msg *UIMessage) Draw(screen mauview.Screen) { - proxyScreen := msg.DrawReply(screen) +func (msg *UIMessage) Draw(screen mauview.Screen, modernHeader bool) { + proxyScreen := msg.DrawReply(screen, modernHeader) msg.Renderer.Draw(proxyScreen, msg) - msg.DrawReactions(proxyScreen) + msg.DrawReactions(proxyScreen, modernHeader) if msg.IsSelected { w, h := screen.Size() for x := 0; x < w; x++ { @@ -366,7 +372,7 @@ func (msg *UIMessage) CalculateBuffer(preferences config.UserPreferences, width msg.CalculateReplyBuffer(preferences, width) } -func (msg *UIMessage) DrawReply(screen mauview.Screen) mauview.Screen { +func (msg *UIMessage) DrawReply(screen mauview.Screen, modernHeader bool) mauview.Screen { if msg.ReplyTo == nil { return screen } @@ -378,7 +384,7 @@ func (msg *UIMessage) DrawReply(screen mauview.Screen) mauview.Screen { screen.SetCell(0, y, tcell.StyleDefault, '▊') } replyScreen := mauview.NewProxyScreen(screen, 1, 1, width-1, replyHeight) - msg.ReplyTo.Draw(replyScreen) + msg.ReplyTo.Draw(replyScreen, modernHeader) return mauview.NewProxyScreen(screen, 0, replyHeight+1, width, height-replyHeight-1) }