Title: [119210] trunk/Source/WebKit2
Revision
119210
Author
[email protected]
Date
2012-06-01 04:12:20 -0700 (Fri, 01 Jun 2012)

Log Message

[Qt] Clean up our viewport handling mess
https://bugs.webkit.org/show_bug.cgi?id=87977

Reviewed by Simon Hausmann.

Consolidated functionality from QQuickWebViewPrivate* into
ViewportInteractionEngine that belongs there, in preparation for
renaming ViewportInteractionEngine in the future.

Remove unneeded methods and move others to private.

* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewFlickablePrivate::QQuickWebViewFlickablePrivate):
(QQuickWebViewFlickablePrivate::onComponentComplete):
(QQuickWebViewFlickablePrivate::didChangeViewportProperties):
(QQuickWebViewFlickablePrivate::updateViewportSize):
(QQuickWebViewFlickablePrivate::_q_resume):
(QQuickWebViewFlickablePrivate::pageDidRequestScroll):
* UIProcess/API/qt/qquickwebview_p.h:
* UIProcess/API/qt/qquickwebview_p_p.h:
(QQuickWebViewPrivate):
(QQuickWebViewFlickablePrivate):
* UIProcess/qt/QtViewportInteractionEngine.cpp:
(WebKit::ViewportUpdateDeferrer::~ViewportUpdateDeferrer):
(WebKit::QtViewportInteractionEngine::QtViewportInteractionEngine):
(WebKit::QtViewportInteractionEngine::viewportAttributesChanged):
(WebKit::QtViewportInteractionEngine::pageContentsSizeChanged):
(WebKit::QtViewportInteractionEngine::pageItemPositionChanged):
(WebKit::QtViewportInteractionEngine::pageContentPositionRequested):
(WebKit::QtViewportInteractionEngine::visibleContentsRect):
(WebKit):
(WebKit::QtViewportInteractionEngine::informVisibleContentChange):
(WebKit::QtViewportInteractionEngine::viewportItemSizeChanged):
* UIProcess/qt/QtViewportInteractionEngine.h:
(WebKit):
(QtViewportInteractionEngine):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (119209 => 119210)


--- trunk/Source/WebKit2/ChangeLog	2012-06-01 10:50:16 UTC (rev 119209)
+++ trunk/Source/WebKit2/ChangeLog	2012-06-01 11:12:20 UTC (rev 119210)
@@ -1,3 +1,42 @@
+2012-05-31  Kenneth Rohde Christiansen  <[email protected]>
+
+        [Qt] Clean up our viewport handling mess
+        https://bugs.webkit.org/show_bug.cgi?id=87977
+
+        Reviewed by Simon Hausmann.
+
+        Consolidated functionality from QQuickWebViewPrivate* into
+        ViewportInteractionEngine that belongs there, in preparation for
+        renaming ViewportInteractionEngine in the future.
+
+        Remove unneeded methods and move others to private.
+
+        * UIProcess/API/qt/qquickwebview.cpp:
+        (QQuickWebViewFlickablePrivate::QQuickWebViewFlickablePrivate):
+        (QQuickWebViewFlickablePrivate::onComponentComplete):
+        (QQuickWebViewFlickablePrivate::didChangeViewportProperties):
+        (QQuickWebViewFlickablePrivate::updateViewportSize):
+        (QQuickWebViewFlickablePrivate::_q_resume):
+        (QQuickWebViewFlickablePrivate::pageDidRequestScroll):
+        * UIProcess/API/qt/qquickwebview_p.h:
+        * UIProcess/API/qt/qquickwebview_p_p.h:
+        (QQuickWebViewPrivate):
+        (QQuickWebViewFlickablePrivate):
+        * UIProcess/qt/QtViewportInteractionEngine.cpp:
+        (WebKit::ViewportUpdateDeferrer::~ViewportUpdateDeferrer):
+        (WebKit::QtViewportInteractionEngine::QtViewportInteractionEngine):
+        (WebKit::QtViewportInteractionEngine::viewportAttributesChanged):
+        (WebKit::QtViewportInteractionEngine::pageContentsSizeChanged):
+        (WebKit::QtViewportInteractionEngine::pageItemPositionChanged):
+        (WebKit::QtViewportInteractionEngine::pageContentPositionRequested):
+        (WebKit::QtViewportInteractionEngine::visibleContentsRect):
+        (WebKit):
+        (WebKit::QtViewportInteractionEngine::informVisibleContentChange):
+        (WebKit::QtViewportInteractionEngine::viewportItemSizeChanged):
+        * UIProcess/qt/QtViewportInteractionEngine.h:
+        (WebKit):
+        (QtViewportInteractionEngine):
+
 2012-05-31  Hajime Morrita  <[email protected]>
 
         REGRESSION(r117572): editing/spelling/spellcheck-async-remove-frame.html crashes on Mac

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


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp	2012-06-01 10:50:16 UTC (rev 119209)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp	2012-06-01 11:12:20 UTC (rev 119210)
@@ -735,16 +735,6 @@
     q->setContentY(pos.y());
 }
 
-QRect QQuickWebViewPrivate::visibleContentsRect() const
-{
-    Q_Q(const QQuickWebView);
-    const QRectF visibleRect(q->boundingRect().intersected(pageView->boundingRect()));
-
-    // We avoid using toAlignedRect() because it produces inconsistent width and height.
-    QRectF mappedRect(q->mapRectToWebContent(visibleRect));
-    return QRect(floor(mappedRect.x()), floor(mappedRect.y()), floor(mappedRect.width()), floor(mappedRect.height()));
-}
-
 WebCore::IntSize QQuickWebViewPrivate::viewSize() const
 {
     return WebCore::IntSize(pageView->width(), pageView->height());
@@ -820,7 +810,6 @@
 QQuickWebViewFlickablePrivate::QQuickWebViewFlickablePrivate(QQuickWebView* viewport)
     : QQuickWebViewPrivate(viewport)
     , pageIsSuspended(false)
-    , lastCommittedScale(-1)
 {
     // Disable mouse events on the flickable web view so we do not
     // select text during pan gestures on platforms which send both
@@ -846,12 +835,11 @@
 {
     Q_Q(QQuickWebView);
 
-    interactionEngine.reset(new QtViewportInteractionEngine(q, pageView.data()));
+    interactionEngine.reset(new QtViewportInteractionEngine(webPageProxy.get(), q, pageView.data()));
     pageView->eventHandler()->setViewportInteractionEngine(interactionEngine.data());
 
     QObject::connect(interactionEngine.data(), SIGNAL(contentSuspendRequested()), q, SLOT(_q_suspend()));
     QObject::connect(interactionEngine.data(), SIGNAL(contentResumeRequested()), q, SLOT(_q_resume()));
-    QObject::connect(interactionEngine.data(), SIGNAL(informVisibleContentChange(QPointF)), q, SLOT(_q_onInformVisibleContentChange(QPointF)));
 
     _q_resume();
 
@@ -861,54 +849,17 @@
 
 void QQuickWebViewFlickablePrivate::didChangeViewportProperties(const WebCore::ViewportAttributes& newAttributes)
 {
-    interactionEngine->viewportAttributesChanged(newAttributes);
+    if (interactionEngine)
+        interactionEngine->viewportAttributesChanged(newAttributes);
 }
 
 void QQuickWebViewFlickablePrivate::updateViewportSize()
 {
-    Q_Q(QQuickWebView);
-    QSize viewportSize = q->boundingRect().size().toSize();
-
-    if (viewportSize.isEmpty() || !interactionEngine)
-        return;
-
-    WebPreferences* wkPrefs = webPageProxy->pageGroup()->preferences();
-    wkPrefs->setDeviceWidth(viewportSize.width());
-    wkPrefs->setDeviceHeight(viewportSize.height());
-
-    // Let the WebProcess know about the new viewport size, so that
-    // it can resize the content accordingly.
-    webPageProxy->setViewportSize(viewportSize);
-
-    _q_onInformVisibleContentChange(QPointF());
+    // FIXME: Examine why there is not an interactionEngine here in the beginning.
+    if (interactionEngine)
+        interactionEngine->viewportItemSizeChanged();
 }
 
-void QQuickWebViewFlickablePrivate::_q_onInformVisibleContentChange(const QPointF& trajectoryVector)
-{
-    Q_Q(QQuickWebView);
-
-    DrawingAreaProxy* drawingArea = webPageProxy->drawingArea();
-    if (!drawingArea)
-        return;
-
-    QRectF accurateVisibleRect(q->boundingRect());
-    accurateVisibleRect.translate(contentPos());
-
-    if (accurateVisibleRect == drawingArea->contentsRect())
-        return;
-
-    float scale = pageView->contentsScale();
-
-    if (scale != lastCommittedScale)
-        emit q->experimental()->test()->contentsScaleCommitted();
-    lastCommittedScale = scale;
-
-    drawingArea->setVisibleContentsRect(QRect(visibleContentsRect()), scale, trajectoryVector, FloatPoint(accurateVisibleRect.x(), accurateVisibleRect.y()));
-
-    // Ensure that updatePaintNode is always called before painting.
-    pageView->update();
-}
-
 void QQuickWebViewFlickablePrivate::_q_suspend()
 {
     pageIsSuspended = true;
@@ -922,13 +873,11 @@
 
     pageIsSuspended = false;
     webPageProxy->resumeActiveDOMObjectsAndAnimations();
-
-    _q_onInformVisibleContentChange(QPointF());
 }
 
 void QQuickWebViewFlickablePrivate::pageDidRequestScroll(const QPoint& pos)
 {
-    interactionEngine->pageContentPositionRequest(pos);
+    interactionEngine->pageContentPositionRequested(pos);
 }
 
 void QQuickWebViewFlickablePrivate::didChangeContentsSize(const QSize& newSize)

Modified: trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h (119209 => 119210)


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h	2012-06-01 10:50:16 UTC (rev 119209)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h	2012-06-01 11:12:20 UTC (rev 119210)
@@ -207,7 +207,6 @@
 
     Q_PRIVATE_SLOT(d_func(), void _q_suspend());
     Q_PRIVATE_SLOT(d_func(), void _q_resume());
-    Q_PRIVATE_SLOT(d_func(), void _q_onInformVisibleContentChange(const QPointF&));
 
     Q_PRIVATE_SLOT(d_func(), void _q_onVisibleChanged());
     Q_PRIVATE_SLOT(d_func(), void _q_onUrlChanged());

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


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h	2012-06-01 10:50:16 UTC (rev 119209)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h	2012-06-01 11:12:20 UTC (rev 119210)
@@ -95,7 +95,6 @@
 
     virtual void _q_suspend() { }
     virtual void _q_resume() { }
-    virtual void _q_onInformVisibleContentChange(const QPointF& trajectory) { };
 
     virtual qreal zoomFactor() const { return 1; }
     virtual void setZoomFactor(qreal) { }
@@ -128,8 +127,6 @@
     QPointF contentPos() const;
     void setContentPos(const QPointF&);
 
-    QRect visibleContentsRect() const;
-
     void setDialogActive(bool active) { m_dialogActive = active; }
 
     void updateIcon();
@@ -233,7 +230,6 @@
 
     virtual void _q_suspend();
     virtual void _q_resume();
-    virtual void _q_onInformVisibleContentChange(const QPointF& trajectory);
 
     virtual void pageDidRequestScroll(const QPoint& pos);
     virtual void didChangeContentsSize(const QSize& newSize);
@@ -241,7 +237,6 @@
 private:
     QScopedPointer<WebKit::QtViewportInteractionEngine> interactionEngine;
     bool pageIsSuspended;
-    float lastCommittedScale;
 };
 
 #endif // qquickwebview_p_p_h

Modified: trunk/Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.cpp (119209 => 119210)


--- trunk/Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.cpp	2012-06-01 10:50:16 UTC (rev 119209)
+++ trunk/Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.cpp	2012-06-01 11:12:20 UTC (rev 119210)
@@ -22,6 +22,9 @@
 #include "config.h"
 #include "QtViewportInteractionEngine.h"
 
+#include "WebPageGroup.h"
+#include "WebPageProxy.h"
+#include "WebPreferences.h"
 #include "qquickwebpage_p.h"
 #include "qquickwebview_p.h"
 #include "qwebkittest_p.h"
@@ -86,7 +89,7 @@
         }
 
         // Make sure that tiles all around the viewport will be requested.
-        emit engine->informVisibleContentChange(QPointF());
+        engine->informVisibleContentChange(QPointF());
     }
 
 private:
@@ -132,18 +135,22 @@
     return itemRect;
 }
 
-QtViewportInteractionEngine::QtViewportInteractionEngine(QQuickWebView* viewportItem, QQuickWebPage* pageItem)
-    : m_viewportItem(viewportItem)
+QtViewportInteractionEngine::QtViewportInteractionEngine(WebKit::WebPageProxy* proxy, QQuickWebView* viewportItem, QQuickWebPage* pageItem)
+    : m_webPageProxy(proxy)
+    , m_viewportItem(viewportItem)
     , m_pageItem(pageItem)
+    , m_allowsUserScaling(false)
+    , m_minimumScale(1)
+    , m_maximumScale(1)
+    , m_devicePixelRatio(1)
     , m_suspendCount(0)
     , m_hasSuspendedContent(false)
     , m_hadUserInteraction(false)
     , m_scaleAnimation(new ScaleAnimation(this))
     , m_pinchStartScale(-1)
+    , m_lastCommittedScale(-1)
     , m_zoomOutScale(0.0)
 {
-    reset();
-
     connect(m_pageItem, SIGNAL(widthChanged()), SLOT(pageItemSizeChanged()), Qt::DirectConnection);
     connect(m_pageItem, SIGNAL(heightChanged()), SLOT(pageItemSizeChanged()), Qt::DirectConnection);
     connect(m_viewportItem, SIGNAL(movementStarted()), SLOT(flickMoveStarted()), Qt::DirectConnection);
@@ -180,18 +187,36 @@
     m_rawAttributes = newAttributes;
     WebCore::restrictScaleFactorToInitialScaleIfNotUserScalable(m_rawAttributes);
 
-    // FIXME: Resetting here can reset more than needed. For instance it will end deferrers.
-    // This needs to be revised at some point.
-    reset();
+    {
+        // FIXME: Resetting here is wrong, it should happen only for the first
+        // viewport change for a given page and first when we paint the page for
+        // the first time.
 
+        m_hadUserInteraction = false;
 
-    // FIXME: Should get directly from the webPageProxy.
-    setDevicePixelRatio(m_rawAttributes.devicePixelRatio);
+        m_zoomOutScale = 0.0;
+        m_scaleStack.clear();
 
-    setAllowsUserScaling(!!m_rawAttributes.userScalable);
-    setCSSScaleBounds(m_rawAttributes.minimumScale, m_rawAttributes.maximumScale);
+        // This part below should go fully away when the above plan is implemented.
 
+        m_viewportItem->cancelFlick();
+        m_scaleAnimation->stop();
+
+        m_scaleUpdateDeferrer.clear();
+        m_scrollUpdateDeferrer.clear();
+        m_touchUpdateDeferrer.clear();
+        m_animationUpdateDeferrer.clear();
+        ASSERT(!m_suspendCount);
+        ASSERT(!m_hasSuspendedContent);
+    }
+
+    m_devicePixelRatio = m_rawAttributes.devicePixelRatio; // Should return value from the webPageProxy.
+    m_allowsUserScaling = !!m_rawAttributes.userScalable;
+    m_minimumScale = m_rawAttributes.minimumScale;
+    m_maximumScale = m_rawAttributes.maximumScale;
+
     if (!m_hadUserInteraction && !m_hasSuspendedContent) {
+        ASSERT(m_pinchStartScale == -1);
         // Emits contentsScaleChanged();
         setCSSScale(m_rawAttributes.initialScale);
     }
@@ -209,7 +234,7 @@
     float minimumScale = WebCore::computeMinimumScaleFactorForContentContained(m_rawAttributes, viewportSize, newSize);
 
     if (!qFuzzyCompare(minimumScale, m_rawAttributes.minimumScale)) {
-        setCSSScaleBounds(minimumScale, m_rawAttributes.maximumScale);
+        m_minimumScale = minimumScale;
         emit m_viewportItem->experimental()->test()->viewportChanged();
 
         if (!m_hadUserInteraction && !m_hasSuspendedContent) {
@@ -300,12 +325,12 @@
 {
     QPointF newPosition = m_viewportItem->contentPos();
 
-    emit informVisibleContentChange(m_lastScrollPosition - newPosition);
+    informVisibleContentChange(m_lastScrollPosition - newPosition);
 
     m_lastScrollPosition = newPosition;
 }
 
-void QtViewportInteractionEngine::pageContentPositionRequest(const QPoint& cssPosition)
+void QtViewportInteractionEngine::pageContentPositionRequested(const QPoint& cssPosition)
 {
     // Ignore the request if suspended. Can only happen due to delay in event delivery.
     if (m_suspendCount)
@@ -506,32 +531,6 @@
     return endVisibleContentRect;
 }
 
-void QtViewportInteractionEngine::reset()
-{
-    ASSERT(!m_suspendCount);
-
-    m_hadUserInteraction = false;
-
-    m_allowsUserScaling = false;
-    m_minimumScale = 1;
-    m_maximumScale = 1;
-    m_devicePixelRatio = 1;
-    m_pinchStartScale = -1;
-    m_zoomOutScale = 0.0;
-
-    m_viewportItem->cancelFlick();
-    m_scaleAnimation->stop();
-    m_scaleUpdateDeferrer.clear();
-    m_scrollUpdateDeferrer.clear();
-    m_scaleStack.clear();
-}
-
-void QtViewportInteractionEngine::setCSSScaleBounds(qreal minimum, qreal maximum)
-{
-    m_minimumScale = minimum;
-    m_maximumScale = maximum;
-}
-
 void QtViewportInteractionEngine::setCSSScale(qreal scale)
 {
     ViewportUpdateDeferrer guard(this);
@@ -677,6 +676,52 @@
     m_scaleUpdateDeferrer.clear();
 }
 
+QRect QtViewportInteractionEngine::visibleContentsRect() const
+{
+    const QRectF visibleRect(m_viewportItem->boundingRect().intersected(m_pageItem->boundingRect()));
+
+    // We avoid using toAlignedRect() because it produces inconsistent width and height.
+    QRectF mappedRect(m_viewportItem->mapRectToWebContent(visibleRect));
+    return QRect(floor(mappedRect.x()), floor(mappedRect.y()), floor(mappedRect.width()), floor(mappedRect.height()));
+}
+
+void QtViewportInteractionEngine::informVisibleContentChange(const QPointF& trajectoryVector)
+{
+    DrawingAreaProxy* drawingArea = m_webPageProxy->drawingArea();
+    if (!drawingArea)
+        return;
+
+    qreal scale = m_pageItem->contentsScale();
+
+    if (scale != m_lastCommittedScale)
+        emit m_viewportItem->experimental()->test()->contentsScaleCommitted();
+    m_lastCommittedScale = scale;
+
+    drawingArea->setVisibleContentsRect(visibleContentsRect(), scale, trajectoryVector, m_viewportItem->contentPos());
+
+    // Ensure that updatePaintNode is always called before painting.
+    m_pageItem->update();
+}
+
+void QtViewportInteractionEngine::viewportItemSizeChanged()
+{
+    QSize viewportSize = m_viewportItem->boundingRect().size().toSize();
+
+    if (viewportSize.isEmpty())
+        return;
+
+    // FIXME: This is wrong, add QML api!
+    WebPreferences* wkPrefs = m_webPageProxy->pageGroup()->preferences();
+    wkPrefs->setDeviceWidth(viewportSize.width());
+    wkPrefs->setDeviceHeight(viewportSize.height());
+
+    // Let the WebProcess know about the new viewport size, so that
+    // it can resize the content accordingly.
+    m_webPageProxy->setViewportSize(viewportSize);
+
+    informVisibleContentChange(QPointF());
+}
+
 /*
  * This is called for all changes of item scale, width or height.
  * This is called when interacting, ie. during for instance pinch-zooming.

Modified: trunk/Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.h (119209 => 119210)


--- trunk/Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.h	2012-06-01 10:50:16 UTC (rev 119209)
+++ trunk/Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.h	2012-06-01 11:12:20 UTC (rev 119210)
@@ -40,34 +40,16 @@
 
 namespace WebKit {
 
+class WebPageProxy;
 class ViewportUpdateDeferrer;
 
 class QtViewportInteractionEngine : public QObject {
     Q_OBJECT
 
 public:
-    QtViewportInteractionEngine(QQuickWebView*, QQuickWebPage*);
+    QtViewportInteractionEngine(WebPageProxy*, QQuickWebView*, QQuickWebPage*);
     ~QtViewportInteractionEngine();
 
-    void reset();
-
-    bool hadUserInteraction() const { return m_hadUserInteraction; }
-
-    void setCSSScaleBounds(qreal minimum, qreal maximum);
-    void setCSSScale(qreal);
-
-    qreal currentCSSScale() const;
-
-    void setAllowsUserScaling(bool allow) { m_allowsUserScaling = allow; }
-    void setDevicePixelRatio(qreal ratio) { m_devicePixelRatio = ratio; }
-
-    void setPageItemRectVisible(const QRectF&);
-    void animatePageItemRectVisible(const QRectF&);
-
-    QRectF nearestValidBounds() const;
-
-    void pageContentPositionRequest(const QPoint& pos);
-
     void touchBegin();
     void touchEnd();
 
@@ -92,15 +74,13 @@
     void zoomToAreaGestureEnded(const QPointF& touchPoint, const QRectF& targetArea);
     void focusEditableArea(const QRectF& caretArea, const QRectF& targetArea);
 
+    void pageContentPositionRequested(const QPoint& position);
+
+    void viewportItemSizeChanged();
     void viewportAttributesChanged(const WebCore::ViewportAttributes&);
+    void informVisibleContentChange(const QPointF& trajectory = QPointF());
     void pageContentsSizeChanged(const QSize& newSize, const QSize& viewportSize);
 
-Q_SIGNALS:
-    void contentSuspendRequested();
-    void contentResumeRequested();
-
-    void informVisibleContentChange(const QPointF& trajectory = QPointF());
-
 private Q_SLOTS:
     // Respond to changes of content that are not driven by us, like the page resizing itself.
     void pageItemSizeChanged();
@@ -112,10 +92,15 @@
     void flickMoveStarted(); // Called when panning starts.
     void flickMoveEnded(); //   Called when panning (+ kinetic animation) ends.
 
+Q_SIGNALS:
+    void contentSuspendRequested();
+    void contentResumeRequested();
+
 private:
     friend class ViewportUpdateDeferrer;
     friend class ::QWebKitTest;
 
+    WebPageProxy* const m_webPageProxy;
     QQuickWebView* const m_viewportItem;
     QQuickWebPage* const m_pageItem;
 
@@ -127,6 +112,15 @@
     qreal innerBoundedCSSScale(qreal) const;
     qreal outerBoundedCSSScale(qreal) const;
 
+    void setCSSScale(qreal);
+    qreal currentCSSScale() const;
+
+    void setPageItemRectVisible(const QRectF&);
+    void animatePageItemRectVisible(const QRectF&);
+
+    QRect visibleContentsRect() const;
+    QRectF nearestValidBounds() const;
+
     QRectF computePosRangeForPageItemAtScale(qreal itemScale) const;
     void scaleContent(const QPointF& centerInCSSCoordinates, qreal cssScale);
 
@@ -172,6 +166,7 @@
     QPointF m_lastPinchCenterInViewportCoordinates;
     QPointF m_lastScrollPosition;
     qreal m_pinchStartScale;
+    qreal m_lastCommittedScale;
     qreal m_zoomOutScale;
     QList<ScaleStackItem> m_scaleStack;
 };
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to