diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-25 15:09:11 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-25 15:09:11 +0200 |
commit | a89b2ebb8e192c5e8cea21079bda2ee2c0c7dddd (patch) | |
tree | b7abd9f49ae1d4d2e426a5883bfccd42b8e2ee12 /Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp | |
parent | 8d473cf9743f1d30a16a27114e93bd5af5648d23 (diff) | |
download | qtwebkit-a89b2ebb8e192c5e8cea21079bda2ee2c0c7dddd.tar.gz |
Imported WebKit commit eb5c1b8fe4d4b1b90b5137433fc58a91da0e6878 (http://svn.webkit.org/repository/webkit/trunk@118516)
Diffstat (limited to 'Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp')
-rw-r--r-- | Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp b/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp index e02ccc9b2..178e2dade 100644 --- a/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp +++ b/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp @@ -140,18 +140,41 @@ QTransform QQuickWebPage::transformFromItem() const QTransform QQuickWebPage::transformToItem() const { - QPointF pos = d->viewportItem->pageItemPos(); - return QTransform(d->contentsScale, 0, 0, 0, d->contentsScale, 0, pos.x(), pos.y(), 1); + qreal xPos = x(); + qreal yPos = y(); + + if (d->viewportItem->experimental()->flickableViewportEnabled()) { + // Flickable moves its contentItem so we need to take that position into + // account, as well as the potential displacement of the page on the + // contentItem because of additional QML items. + xPos += d->viewportItem->contentItem()->x(); + yPos += d->viewportItem->contentItem()->y(); + } + + return QTransform(d->contentsScale, 0, 0, 0, d->contentsScale, 0, xPos, yPos, 1); } void QQuickWebPagePrivate::updateSize() { QSizeF scaledSize = contentsSize * contentsScale; - q->setSize(scaledSize); - viewportItem->updateContentsSize(scaledSize); + DrawingAreaProxy* drawingArea = webPageProxy->drawingArea(); if (drawingArea && drawingArea->layerTreeHostProxy()) - drawingArea->layerTreeHostProxy()->setContentsSize(WebCore::FloatSize(contentsSize.width(), contentsSize.height())); + drawingArea->layerTreeHostProxy()->setContentsSize(contentsSize); + + q->setSize(scaledSize); + + if (viewportItem->experimental()->flickableViewportEnabled()) { + // Make sure that the content is sized to the page if the user did not + // add other flickable items. If that is not the case, the user needs to + // disable the default content item size property on the WebView and + // bind the contentWidth and contentHeight accordingly, in accordance + // accordance with normal Flickable behaviour. + if (viewportItem->experimental()->useDefaultContentItemSize()) { + viewportItem->setContentWidth(scaledSize.width()); + viewportItem->setContentHeight(scaledSize.height()); + } + } } QQuickWebPagePrivate::~QQuickWebPagePrivate() |