aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Editor.cxx15
-rw-r--r--src/LineMarker.cxx4
2 files changed, 11 insertions, 8 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx
index f618c78de..26c260101 100644
--- a/src/Editor.cxx
+++ b/src/Editor.cxx
@@ -1930,18 +1930,23 @@ void Editor::PaintSelMargin(Surface *surfWindow, PRectangle &rc) {
if (marks) {
for (int markBit = 0; (markBit < 32) && marks; markBit++) {
if (marks & 1) {
- LineMarker::typeOfFold tFold;
+ LineMarker::typeOfFold tFold = LineMarker::undefined;
if (!highlightDelimiter.isCurrentBlockHighlight(lineDoc)) {
tFold = LineMarker::undefined;
} else if (highlightDelimiter.isBodyBlockFold(lineDoc)) {
tFold = LineMarker::body;
} else if (highlightDelimiter.isHeadBlockFold(lineDoc)) {
- tFold = LineMarker::head;
+ if (firstSubLine) {
+ tFold = LineMarker::head;
+ } else {
+ if (cs.GetExpanded(lineDoc)) {
+ tFold = LineMarker::body;
+ } else {
+ tFold = LineMarker::undefined;
+ }
+ }
} else if (highlightDelimiter.isTailBlockFold(lineDoc)) {
tFold = LineMarker::tail;
- } else {
- //Normally, this branch is never used. But I prefer to manage it anyway.
- tFold = LineMarker::undefined;
}
vs.markers[markBit].Draw(surface, rcMarker, vs.styles[STYLE_LINENUMBER].font, tFold);
}
diff --git a/src/LineMarker.cxx b/src/LineMarker.cxx
index 73410e2cd..747c5ff12 100644
--- a/src/LineMarker.cxx
+++ b/src/LineMarker.cxx
@@ -77,8 +77,6 @@ void LineMarker::Draw(Surface *surface, PRectangle &rcWhole, Font &fontForCharac
case LineMarker::head :
head = backSelected;
tail = backSelected;
- if (markType == SC_MARK_VLINE)
- body = backSelected;
break;
case LineMarker::body :
head = backSelected;
@@ -186,7 +184,7 @@ void LineMarker::Draw(Surface *surface, PRectangle &rcWhole, Font &fontForCharac
} else if (markType == SC_MARK_VLINE) {
surface->PenColour(body.allocated);
- surface->MoveTo(centreX, rcWhole.top + blobSize - (rcWhole.bottom - rcWhole.top)/2);
+ surface->MoveTo(centreX, rcWhole.top);
surface->LineTo(centreX, rcWhole.bottom);
} else if (markType == SC_MARK_LCORNER) {