diff options
author | Tulir Asokan <tulir@maunium.net> | 2019-04-09 00:59:56 +0300 |
---|---|---|
committer | Tulir Asokan <tulir@maunium.net> | 2019-04-09 00:59:56 +0300 |
commit | 887e2e232abec4e7cd9f8d19631f6ae5b14a0181 (patch) | |
tree | 21b0bea565e532b37bdcba94b5731fe70158d88d /ui/message-view.go | |
parent | d0c0af811e89e0020aa95080c589724885a71a3e (diff) |
Fix non-syntax-highlighted code block newline rendering
Diffstat (limited to 'ui/message-view.go')
-rw-r--r-- | ui/message-view.go | 31 |
1 files changed, 11 insertions, 20 deletions
diff --git a/ui/message-view.go b/ui/message-view.go index 144bfca..748eec3 100644 --- a/ui/message-view.go +++ b/ui/message-view.go @@ -474,29 +474,25 @@ func (view *MessageView) Draw(screen mauview.Screen) { scrollBarHeight, scrollBarPos := view.calculateScrollBar(view.height) var prevMeta ifc.MessageMeta - firstLine := true - skippedLines := 0 - for line := 0; line < view.height; line++ { - index := indexOffset + line - if index < 0 { - skippedLines++ - continue - } else if index >= view.TotalHeight() { - break - } - - showScrollbar := line-skippedLines >= scrollBarPos-scrollBarHeight && line-skippedLines < scrollBarPos - isTop := firstLine && view.ScrollOffset+view.height >= view.TotalHeight() + viewStart := 0 + if indexOffset < 0 { + viewStart = -indexOffset + } + for line := viewStart; line < view.height; line++ { + showScrollbar := line-viewStart >= scrollBarPos-scrollBarHeight && line-viewStart < scrollBarPos + isTop := line == viewStart && view.ScrollOffset+view.height >= view.TotalHeight() isBottom := line == view.height-1 && view.ScrollOffset == 0 borderChar, borderStyle := getScrollbarStyle(showScrollbar, isTop, isBottom) - firstLine = false - if !bareMode { screen.SetContent(separatorX, line, borderChar, nil, borderStyle) } + } + + for line := viewStart; line < view.height && indexOffset+line < view.TotalHeight(); line++ { + index := indexOffset + line text, meta := view.textBuffer[index], view.metaBuffer[index] if meta != prevMeta { @@ -519,11 +515,6 @@ func (view *MessageView) Draw(screen mauview.Screen) { line-- } message.Draw(mauview.NewProxyScreen(screen, messageX, line, view.width-messageX, message.Height())) - if !bareMode { - for i := line; i < line+message.Height(); i++ { - screen.SetContent(separatorX, i, borderChar, nil, borderStyle) - } - } line += message.Height() - 1 } else { text.Draw(screen, messageX, line) |