diff options
Diffstat (limited to 'Source')
| -rw-r--r-- | Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.cpp b/Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.cpp index a8ba76cdb..c0eb16ab9 100644 --- a/Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.cpp +++ b/Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.cpp @@ -46,7 +46,7 @@ PageViewportControllerClientQt::PageViewportControllerClientQt(QQuickWebView* vi , m_lastCommittedScale(-1) , m_zoomOutScale(0) , m_isUserInteracting(false) - , m_ignoreViewportChanges(true) + , m_ignoreViewportChanges(false) { m_scaleAnimation->setDuration(kScaleAnimationDurationMillis); m_scaleAnimation->setEasingCurve(QEasingCurve::OutCubic); @@ -124,15 +124,12 @@ void PageViewportControllerClientQt::flickMoveStarted() m_controller->suspendContent(); m_lastScrollPosition = m_viewportItem->contentPos(); - - m_ignoreViewportChanges = false; } void PageViewportControllerClientQt::flickMoveEnded() { // This method is called on the end of the pan or pan kinetic animation. - m_ignoreViewportChanges = true; if (!m_isUserInteracting) m_controller->resumeContent(); } @@ -153,10 +150,12 @@ void PageViewportControllerClientQt::scaleAnimationStateChanged(QAbstractAnimati { switch (newState) { case QAbstractAnimation::Running: + m_ignoreViewportChanges = true; m_viewportItem->cancelFlick(); m_controller->suspendContent(); break; case QAbstractAnimation::Stopped: + m_ignoreViewportChanges = false; m_controller->resumeContent(); break; default: @@ -318,8 +317,8 @@ QRectF PageViewportControllerClientQt::nearestValidVisibleContentsRect() const void PageViewportControllerClientQt::setViewportPosition(const FloatPoint& contentsPoint) { QPointF newPosition((m_pageItem->position() + QPointF(contentsPoint)) * m_pageItem->contentsScale()); + // The contentX and contentY property changes trigger a visible rect update. m_viewportItem->setContentPos(newPosition); - updateViewportController(); } void PageViewportControllerClientQt::setContentsScale(float localScale, bool treatAsInitialValue) @@ -427,6 +426,7 @@ void PageViewportControllerClientQt::pinchGestureStarted(const QPointF& pinchCen clearRelativeZoomState(); + m_ignoreViewportChanges = true; m_controller->suspendContent(); m_lastPinchCenterInViewportCoordinates = pinchCenterInViewportCoordinates; @@ -461,6 +461,7 @@ void PageViewportControllerClientQt::pinchGestureEnded() if (!m_controller->allowsUserScaling()) return; + m_ignoreViewportChanges = false; m_pinchStartScale = -1; // This will take care of resuming the content, even if no animation was performed. |
