From ca7b9e66fc519cae98fd0e8eac04f5e81ef6584c Mon Sep 17 00:00:00 2001
From: Neil
Date: Sat, 19 Jul 2014 09:29:20 +1000
Subject: Treated SC_PHASES_MULTIPLE as SC_PHASES_TWO when buffered drawing is
on.
---
doc/ScintillaDoc.html | 2 ++
src/EditView.cxx | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/doc/ScintillaDoc.html b/doc/ScintillaDoc.html
index 54b8b50d9..9cc5cae18 100644
--- a/doc/ScintillaDoc.html
+++ b/doc/ScintillaDoc.html
@@ -3225,6 +3225,8 @@ struct Sci_TextToFind {
drawn before any text and then all the text is drawn in transparent mode over this
combined background without clipping text to the line boundaries. This allows
extreme ascenders and decenders to overflow into the adjacent lines.
+ This mode is incompatible with buffered drawing and will act as SC_PHASES_TWO
+ if buffered drawing is turned on.
Multiple phase drawing is slower than two phase drawing.
Setting the layout cache to SC_CACHE_PAGE
or higher can ensure that multiple phase drawing is not significantly slower.
diff --git a/src/EditView.cxx b/src/EditView.cxx
index 1514b963b..76e54faac 100644
--- a/src/EditView.cxx
+++ b/src/EditView.cxx
@@ -1702,7 +1702,7 @@ void EditView::PaintText(Surface *surfaceWindow, const EditModel &model, PRectan
int lineDocPrevious = -1; // Used to avoid laying out one document line multiple times
AutoLineLayout ll(llc, 0);
std::vector phases;
- if (phasesDraw == phasesMultiple) {
+ if ((phasesDraw == phasesMultiple) && !bufferedDraw) {
for (DrawPhase phase = drawBack; phase <= drawCarets; phase = static_cast(phase * 2)) {
phases.push_back(phase);
}
--
cgit v1.2.3