Title: [109957] trunk/Source/WebKit2
Revision
109957
Author
[email protected]
Date
2012-03-06 13:43:11 -0800 (Tue, 06 Mar 2012)

Log Message

MiniBrowser --window-size 480x800 www.nytimes.com doesn't paint bottom tiles.
https://bugs.webkit.org/show_bug.cgi?id=80313

Patch by Hugo Parente Lima <[email protected]> on 2012-03-06
Reviewed by Kenneth Rohde Christiansen.

Fix the math to get the visible rectangle and add a method to get it.

* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::visibleContentsRect):
(QQuickWebViewFlickablePrivate::_q_commitScaleChange):
(QQuickWebViewPrivate::_q_commitPositionChange):
* UIProcess/API/qt/qquickwebview_p_p.h:
(QQuickWebViewPrivate):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (109956 => 109957)


--- trunk/Source/WebKit2/ChangeLog	2012-03-06 21:32:24 UTC (rev 109956)
+++ trunk/Source/WebKit2/ChangeLog	2012-03-06 21:43:11 UTC (rev 109957)
@@ -1,3 +1,19 @@
+2012-03-06  Hugo Parente Lima  <[email protected]>
+
+        MiniBrowser --window-size 480x800 www.nytimes.com doesn't paint bottom tiles.
+        https://bugs.webkit.org/show_bug.cgi?id=80313
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Fix the math to get the visible rectangle and add a method to get it.
+
+        * UIProcess/API/qt/qquickwebview.cpp:
+        (QQuickWebViewPrivate::visibleContentsRect):
+        (QQuickWebViewFlickablePrivate::_q_commitScaleChange):
+        (QQuickWebViewPrivate::_q_commitPositionChange):
+        * UIProcess/API/qt/qquickwebview_p_p.h:
+        (QQuickWebViewPrivate):
+
 2012-03-05  Joseph Pecoraro  <[email protected]>
 
         Web Inspector: Hide dock button when not allowed to dock

Modified: trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp (109956 => 109957)


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp	2012-03-06 21:32:24 UTC (rev 109956)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp	2012-03-06 21:43:11 UTC (rev 109957)
@@ -460,6 +460,14 @@
     context->setNavigatorQtObjectEnabled(webPageProxy.get(), enabled);
 }
 
+QRect QQuickWebViewPrivate::visibleContentsRect() const
+{
+    Q_Q(const QQuickWebView);
+    const QRectF visibleRect(q->boundingRect().intersected(pageView->boundingRect()));
+
+    return q->mapRectToWebContent(visibleRect).toAlignedRect();
+}
+
 WebCore::IntSize QQuickWebViewPrivate::viewSize() const
 {
     return WebCore::IntSize(pageView->width(), pageView->height());
@@ -638,16 +646,14 @@
         return;
 
     Q_Q(QQuickWebView);
-    const QRectF visibleRectInCSSCoordinates = q->mapRectToWebContent(q->boundingRect()).intersected(pageView->boundingRect());
-    float scale = pageView->contentsScale();
-
     // This is only for our QML ViewportInfo debugging API.
     q->experimental()->viewportInfo()->didUpdateCurrentScale();
 
-    QRect alignedVisibleContentRect = visibleRectInCSSCoordinates.toAlignedRect();
-    drawingArea->setVisibleContentsRectForScaling(alignedVisibleContentRect, scale);
+    const QRect visibleRect(visibleContentsRect());
+    float scale = pageView->contentsScale();
 
-    webPageProxy->setFixedVisibleContentRect(alignedVisibleContentRect);
+    drawingArea->setVisibleContentsRectForScaling(visibleRect, scale);
+    webPageProxy->setFixedVisibleContentRect(visibleRect);
 }
 
 void QQuickWebViewPrivate::_q_commitPositionChange(const QPointF& trajectoryVector)
@@ -656,16 +662,13 @@
     if (!drawingArea)
         return;
 
-    Q_Q(QQuickWebView);
-    const QRectF visibleRectInCSSCoordinates = q->mapRectToWebContent(q->boundingRect()).intersected(pageView->boundingRect());
+    const QRect visibleRect(visibleContentsRect());
+    drawingArea->setVisibleContentsRectForPanning(visibleRect, trajectoryVector);
 
-    QRect alignedVisibleContentRect = visibleRectInCSSCoordinates.toAlignedRect();
-    drawingArea->setVisibleContentsRectForPanning(alignedVisibleContentRect, trajectoryVector);
-
     if (!trajectoryVector.isNull())
         return;
 
-    webPageProxy->setFixedVisibleContentRect(alignedVisibleContentRect);
+    webPageProxy->setFixedVisibleContentRect(visibleRect);
 }
 
 void QQuickWebViewFlickablePrivate::_q_suspend()

Modified: trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h (109956 => 109957)


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h	2012-03-06 21:32:24 UTC (rev 109956)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h	2012-03-06 21:43:11 UTC (rev 109957)
@@ -116,6 +116,8 @@
     bool renderToOffscreenBuffer() const { return m_renderToOffscreenBuffer; }
     void setNavigatorQtObjectEnabled(bool);
 
+    QRect visibleContentsRect() const;
+
     // PageClient.
     WebCore::IntSize viewSize() const;
     void didReceiveMessageFromNavigatorQtObject(const String& message);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to