aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authornyamatongwe <devnull@localhost>2005-11-29 21:58:41 +0000
committernyamatongwe <devnull@localhost>2005-11-29 21:58:41 +0000
commit0fe67dea50bf9d8d5459d620d019a3b0ec274a19 (patch)
tree93f36b9100972fad830b5adb4675620aab09bf11 /src
parent510030822262b70e881d26d1287d1af60fb56c63 (diff)
downloadscintilla-mirror-0fe67dea50bf9d8d5459d620d019a3b0ec274a19.tar.gz
Fixed assertion where painting a rectangular selection led to
multiple layouts being checked out of the cache.
Diffstat (limited to 'src')
-rw-r--r--src/Editor.cxx3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx
index ab7094112..21184d387 100644
--- a/src/Editor.cxx
+++ b/src/Editor.cxx
@@ -2823,6 +2823,8 @@ void Editor::Paint(Surface *surfaceWindow, PRectangle rcArea) {
//ElapsedTime et;
if (lineDoc != lineDocPrevious) {
ll.Set(0);
+ // For rectangular selection this accesses the layout cache so should be after layout returned.
+ lineIterator.SetAt(lineDoc);
ll.Set(RetrieveLineLayout(lineDoc));
LayoutLine(lineDoc, surface, vs, ll, wrapWidth);
lineDocPrevious = lineDoc;
@@ -2834,7 +2836,6 @@ void Editor::Paint(Surface *surfaceWindow, PRectangle rcArea) {
ll->selStart = SelectionStart();
ll->selEnd = SelectionEnd();
} else {
- lineIterator.SetAt(lineDoc);
ll->selStart = lineIterator.startPos;
ll->selEnd = lineIterator.endPos;
}