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