diff options
| author | nyamatongwe <devnull@localhost> | 2003-08-14 12:56:45 +0000 | 
|---|---|---|
| committer | nyamatongwe <devnull@localhost> | 2003-08-14 12:56:45 +0000 | 
| commit | 8732a398743a176e87fe2ae5673e00bed09c8dcd (patch) | |
| tree | 777bea705858471d949543c7790a0b2fdbf5357c | |
| parent | a0d70703067f16bae80b6666156ee3ff66ff46f5 (diff) | |
| download | scintilla-mirror-8732a398743a176e87fe2ae5673e00bed09c8dcd.tar.gz | |
Fixed bugs with displaying indicators with wrap turned on.
| -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; | 
