diff --git a/style_parser.go b/style_parser.go index ce537da7..e52af06e 100644 --- a/style_parser.go +++ b/style_parser.go @@ -63,7 +63,7 @@ func readStyle(runes []rune, defaultStyle Style) Style { case tokenBg: style.Bg = StyleParserColorMap[pair[1]] case tokenModifier: - style.Modifier = modifierMap[pair[1]] + style.Modifier |= modifierMap[pair[1]] } } } diff --git a/widgets/list.go b/widgets/list.go index a4a6cb1b..4f205c46 100644 --- a/widgets/list.go +++ b/widgets/list.go @@ -44,15 +44,17 @@ func (self *List) Draw(buf *Buffer) { // draw rows for row := self.topRow; row < len(self.Rows) && point.Y < self.Inner.Max.Y; row++ { - cells := ParseStyles(self.Rows[row], self.TextStyle) + var cells []Cell + if row == self.SelectedRow { + cells = ParseStyles(self.Rows[row], self.SelectedRowStyle) + } else { + cells = ParseStyles(self.Rows[row], self.TextStyle) + } if self.WrapText { cells = WrapCells(cells, uint(self.Inner.Dx())) } for j := 0; j < len(cells) && point.Y < self.Inner.Max.Y; j++ { style := cells[j].Style - if row == self.SelectedRow { - style = self.SelectedRowStyle - } if cells[j].Rune == '\n' { point = image.Pt(self.Inner.Min.X, point.Y+1) } else {