summaryrefslogtreecommitdiffstats
path: root/scintilla/src/PositionCache.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'scintilla/src/PositionCache.cxx')
-rw-r--r--scintilla/src/PositionCache.cxx14
1 files changed, 12 insertions, 2 deletions
diff --git a/scintilla/src/PositionCache.cxx b/scintilla/src/PositionCache.cxx
index 7418389..930e898 100644
--- a/scintilla/src/PositionCache.cxx
+++ b/scintilla/src/PositionCache.cxx
@@ -440,7 +440,7 @@ void BreakFinder::Insert(int val) {
}
BreakFinder::BreakFinder(const LineLayout *ll_, const Selection *psel, Range lineRange_, int posLineStart_,
- int xStart, bool breakForSelection, const Document *pdoc_, const SpecialRepresentations *preprs_) :
+ int xStart, bool breakForSelection, const Document *pdoc_, const SpecialRepresentations *preprs_, const ViewStyle *pvsDraw) :
ll(ll_),
lineRange(lineRange_),
posLineStart(posLineStart_),
@@ -475,7 +475,17 @@ BreakFinder::BreakFinder(const LineLayout *ll_, const Selection *psel, Range lin
}
}
}
-
+ if (pvsDraw && pvsDraw->indicatorsSetFore > 0) {
+ for (Decoration *deco = pdoc->decorations.root; deco; deco = deco->next) {
+ if (pvsDraw->indicators[deco->indicator].OverridesTextFore()) {
+ int startPos = deco->rs.EndRun(posLineStart);
+ while (startPos < (posLineStart + lineRange.end)) {
+ Insert(startPos - posLineStart);
+ startPos = deco->rs.EndRun(startPos);
+ }
+ }
+ }
+ }
Insert(ll->edgeColumn);
Insert(lineRange.end);
saeNext = (!selAndEdge.empty()) ? selAndEdge[0] : -1;