summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp b/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp
index 595d758b4..baf5d5d00 100644
--- a/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp
@@ -634,19 +634,20 @@ bool QWebFrameAdapter::renderFromTiledBackingStore(QPainter* painter, const QReg
int scrollX = view->scrollX();
int scrollY = view->scrollY();
- context.translate(-scrollX, -scrollY);
+ QRect frameRect = view->frameRect();
for (int i = 0; i < vector.size(); ++i) {
const QRect& clipRect = vector.at(i);
- painter->save();
-
- QRect rect = clipRect.translated(scrollX, scrollY);
- painter->setClipRect(rect, Qt::IntersectClip);
+ context.save();
+ QRect rect = clipRect.intersected(frameRect);
+ context.translate(-scrollX, -scrollY);
+ rect.translate(scrollX, scrollY);
+ context.clip(rect);
frame->tiledBackingStore()->paint(&context, rect);
- painter->restore();
+ context.restore();
}
#if USE(ACCELERATED_COMPOSITING)