aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--doc/ScintillaHistory.html5
-rw-r--r--src/EditView.cxx4
2 files changed, 8 insertions, 1 deletions
diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html
index 164a1c317..773a376bf 100644
--- a/doc/ScintillaHistory.html
+++ b/doc/ScintillaHistory.html
@@ -526,6 +526,11 @@
<a href="http://sourceforge.net/p/scintilla/bugs/1740/">Bug #1740</a>.
</li>
<li>
+ Fix drawing problem when control characters are in a hidden style as they then
+ have a zero width rectangle to draw but modify that rectangle in a way that
+ clears some pixels.
+ </li>
+ <li>
Report error when attempt to resize buffer to more than 2GB with SC_STATUS_FAILURE.
</li>
<li>
diff --git a/src/EditView.cxx b/src/EditView.cxx
index e6963e56a..43c3f842b 100644
--- a/src/EditView.cxx
+++ b/src/EditView.cxx
@@ -772,6 +772,8 @@ static void SimpleAlphaRectangle(Surface *surface, PRectangle rc, ColourDesired
static void DrawTextBlob(Surface *surface, const ViewStyle &vsDraw, PRectangle rcSegment,
const char *s, ColourDesired textBack, ColourDesired textFore, bool fillBackground) {
+ if (rcSegment.Empty())
+ return;
if (fillBackground) {
surface->FillRectangle(rcSegment, textBack);
}
@@ -1284,7 +1286,7 @@ void EditView::DrawBackground(Surface *surface, const EditModel &model, const Vi
rcSegment.right = ll->positions[ts.end()] + xStart - static_cast<XYPOSITION>(subLineStart);
// Only try to draw if really visible - enhances performance by not calling environment to
// draw strings that are completely past the right side of the window.
- if (rcSegment.Intersects(rcLine)) {
+ if (!rcSegment.Empty() && rcSegment.Intersects(rcLine)) {
// Clip to line rectangle, since may have a huge position which will not work with some platforms
if (rcSegment.left < rcLine.left)
rcSegment.left = rcLine.left;