aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authornyamatongwe <unknown>2005-11-29 12:10:38 +0000
committernyamatongwe <unknown>2005-11-29 12:10:38 +0000
commitbfc353c1c79b56980285637be3db7aa8d18beb9d (patch)
treec39eb6c1ba7b5d05f290df3dace6428828ee2eb6
parentd5fe4c441caa5b31350736f70e67168ba0fedbf4 (diff)
downloadscintilla-mirror-bfc353c1c79b56980285637be3db7aa8d18beb9d.tar.gz
When checking if a cached layout is still valid check the extra style
byte after the last character used for eolFilled.
-rw-r--r--src/Editor.cxx4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx
index bb0f7ff53..ab7094112 100644
--- a/src/Editor.cxx
+++ b/src/Editor.cxx
@@ -1942,10 +1942,11 @@ void Editor::LayoutLine(int line, Surface *surface, ViewStyle &vstyle, LineLayou
bool allSame = true;
const int styleMask = pdoc->stylingBitsMask;
// Check base line layout
+ char styleByte = 0;
for (int charInDoc = posLineStart; allSame && (charInDoc < posLineEnd); charInDoc++) {
char chDoc = pdoc->CharAt(charInDoc);
+ styleByte = pdoc->StyleAt(charInDoc);
if (vstyle.viewEOL || (!IsEOLChar(chDoc))) {
- char styleByte = pdoc->StyleAt(charInDoc);
allSame = allSame &&
(ll->styles[numCharsInLine] == static_cast<char>(styleByte & styleMask));
allSame = allSame &&
@@ -1962,6 +1963,7 @@ void Editor::LayoutLine(int line, Surface *surface, ViewStyle &vstyle, LineLayou
numCharsInLine++;
}
}
+ allSame = allSame && (ll->styles[numCharsInLine] == styleByte); // For eolFilled
if (allSame) {
ll->validity = LineLayout::llPositions;
} else {