diff options
author | nyamatongwe <unknown> | 2005-11-29 12:10:38 +0000 |
---|---|---|
committer | nyamatongwe <unknown> | 2005-11-29 12:10:38 +0000 |
commit | bfc353c1c79b56980285637be3db7aa8d18beb9d (patch) | |
tree | c39eb6c1ba7b5d05f290df3dace6428828ee2eb6 | |
parent | d5fe4c441caa5b31350736f70e67168ba0fedbf4 (diff) | |
download | scintilla-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.cxx | 4 |
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 { |