From b2edf6ee037decf53c7d2698863ba63742317acc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Samuel=20R=C3=B8dal?= <sroedal@trolltech.com>
Date: Wed, 10 Jun 2009 10:21:19 +0200
Subject: Fixed clipping bug in raster paint engine causing rendering
 artifacts.

The artifacts were visible in the mainwindow demo when dragging the top
toolbar separator left and right. We need to check that rect clipping is
actually activated before we compare the new clip rect with the old,
otherwise the clip type and clip bound flags won't get updated.
---
 src/gui/painting/qpaintengine_raster.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp
index 0810bb9..7ed2dfd 100644
--- a/src/gui/painting/qpaintengine_raster.cpp
+++ b/src/gui/painting/qpaintengine_raster.cpp
@@ -4311,7 +4311,7 @@ QClipData::QClipData(int height)
     clipSpanHeight = height;
     m_clipLines = 0;
 
-    allocated = height;
+    allocated = 0;
     m_spans = 0;
     xmin = xmax = ymin = ymax = 0;
     count = 0;
@@ -4479,7 +4479,7 @@ void QClipData::fixup()
  */
 void QClipData::setClipRect(const QRect &rect)
 {
-    if (rect == clipRect)
+    if (hasRectClip && rect == clipRect)
         return;
 
 //    qDebug() << "setClipRect" << clipSpanHeight << count << allocated << rect;
-- 
cgit v0.12