summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/WebKit2/UIProcess/qt/PageViewportControllerClientQt.cpp11
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.