diff options
| -rw-r--r-- | src/Editor.cxx | 15 | ||||
| -rw-r--r-- | src/LineMarker.cxx | 4 | 
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) {  | 
