diff options
author | nyamatongwe <unknown> | 2003-08-14 12:56:45 +0000 |
---|---|---|
committer | nyamatongwe <unknown> | 2003-08-14 12:56:45 +0000 |
commit | 00595eed97c4019e68863815fbfe21348624eed4 (patch) | |
tree | 777bea705858471d949543c7790a0b2fdbf5357c /src | |
parent | 61250c1cd4e9acf949fd053c7cdf4a490c9bf0e3 (diff) | |
download | scintilla-mirror-00595eed97c4019e68863815fbfe21348624eed4.tar.gz |
Fixed bugs with displaying indicators with wrap turned on.
Diffstat (limited to 'src')
-rw-r--r-- | src/Editor.cxx | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx index df260ed51..86954c9f5 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -2220,19 +2220,23 @@ void Editor::DrawLine(Surface *surface, ViewStyle &vsDraw, int line, int lineVis for (int indica = 0; indica <= INDIC_MAX; indica++) indStart[indica] = 0; - for (int indicPos = 0; indicPos < ll->numCharsInLine; indicPos++) { - if (ll->indicators[indicPos] != ll->indicators[indicPos + 1]) { + for (int indicPos = lineStart; indicPos <= lineEnd; indicPos++) { + if ((ll->indicators[indicPos] != ll->indicators[indicPos + 1]) || (indicPos == lineEnd)) { int mask = 1 << pdoc->stylingBits; for (int indicnum = 0; mask < 0x100; indicnum++) { if ((ll->indicators[indicPos + 1] & mask) && !(ll->indicators[indicPos] & mask)) { indStart[indicnum] = ll->positions[indicPos + 1]; } - if (!(ll->indicators[indicPos + 1] & mask) && (ll->indicators[indicPos] & mask)) { + if ((ll->indicators[indicPos] & mask) && ( + !(ll->indicators[indicPos + 1] & mask) || (indicPos == lineEnd))) { + int endIndicator = indicPos; + if (endIndicator >= lineEnd) + endIndicator = lineEnd-1; PRectangle rcIndic( - indStart[indicnum] + xStart, - rcLine.top + vsDraw.maxAscent, - ll->positions[indicPos + 1] + xStart, - rcLine.top + vsDraw.maxAscent + 3); + indStart[indicnum] + xStart - subLineStart, + rcLine.top + vsDraw.maxAscent, + ll->positions[endIndicator + 1] + xStart - subLineStart, + rcLine.top + vsDraw.maxAscent + 3); vsDraw.indicators[indicnum].Draw(surface, rcIndic); } mask = mask << 1; |