diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Editor.cxx | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx index 23b612229..fedc91f59 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -360,7 +360,7 @@ Editor::Editor() { topLine = 0; posTopLine = 0; - + lengthForEncode = 0; needUpdateUI = true; @@ -2208,8 +2208,9 @@ void Editor::DrawLine(Surface *surface, ViewStyle &vsDraw, int line, int lineVis // See if something overrides the line background color: Either if caret is on the line // and background color is set for that, or if a marker is defined that forces its background // color onto the line, or if a marker is defined but has no selection margin in which to - // display itself. These are checked in order with the earlier taking precedence. When - // multiple markers cause background override, the color for the highest numbered one is used. + // display itself (as long as it's not an SC_MARK_EMPTY marker). These are checked in order + // with the earlier taking precedence. When multiple markers cause background override, + // the color for the highest numbered one is used. bool overrideBackground = false; ColourAllocated background; if (caret.active && vsDraw.showCaretLineBackground && ll->containsCaret) { @@ -2230,9 +2231,9 @@ void Editor::DrawLine(Surface *surface, ViewStyle &vsDraw, int line, int lineVis if (vsDraw.maskInLine) { int marks = pdoc->GetMark(line) & vsDraw.maskInLine; if (marks) { - overrideBackground = true; for (int markBit = 0; (markBit < 32) && marks; markBit++) { - if (marks & 1) { + if ((marks & 1) && (vsDraw.markers[markBit].markType != SC_MARK_EMPTY)) { + overrideBackground = true; background = vsDraw.markers[markBit].back.allocated; } marks >>= 1; |