diff options
Diffstat (limited to 'src/Editor.cxx')
| -rw-r--r-- | src/Editor.cxx | 9 | 
1 files changed, 7 insertions, 2 deletions
| diff --git a/src/Editor.cxx b/src/Editor.cxx index 9f50e331d..2d438e8db 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -2600,11 +2600,15 @@ void Editor::DrawLine(Surface *surface, ViewStyle &vsDraw, int line, int lineVis  		}  	} +	bool selBackDrawn = vsDraw.selbackset &&  +		((vsDraw.selAlpha == SC_ALPHA_NOALPHA) || (vsDraw.selAdditionalAlpha == SC_ALPHA_NOALPHA)); +  	// Does not take margin into account but not significant  	int xStartVisible = subLineStart - xStart;  	ll->psel = &sel; -	BreakFinder bfBack(ll, lineStart, lineEnd, posLineStart, IsUnicodeMode(), xStartVisible); + +	BreakFinder bfBack(ll, lineStart, lineEnd, posLineStart, IsUnicodeMode(), xStartVisible, selBackDrawn);  	int next = bfBack.First();  	// Background drawing loop @@ -2694,7 +2698,8 @@ void Editor::DrawLine(Surface *surface, ViewStyle &vsDraw, int line, int lineVis  	inIndentation = subLine == 0;	// Do not handle indentation except on first subline.  	// Foreground drawing loop -	BreakFinder bfFore(ll, lineStart, lineEnd, posLineStart, IsUnicodeMode(), xStartVisible); +	BreakFinder bfFore(ll, lineStart, lineEnd, posLineStart, IsUnicodeMode(), xStartVisible, +		((!twoPhaseDraw && selBackDrawn) || vsDraw.selforeset));  	next = bfFore.First();  	while (next < lineEnd) { | 
