[Qt] Zoom back can overscroll document edges.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 25 Apr 2012 13:32:19 +0000 (13:32 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 25 Apr 2012 13:32:19 +0000 (13:32 +0000)
https://bugs.webkit.org/show_bug.cgi?id=84851

Patch by Allan Sandfeld Jensen <allan.jensen@nokia.com> on 2012-04-25
Reviewed by Kenneth Rohde Christiansen.

.:

Manual test for overscroll on zoom-back. Needs to be manual since we do not yet
have automatic testing for this type of UI-side behaviour.

* ManualTests/qt/double-tap-overscroll.html: Added.

Source/WebKit2:

* UIProcess/qt/QtViewportInteractionEngine.cpp:
(WebKit::QtViewportInteractionEngine::zoomToAreaGestureEnded):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@115193 268f45cc-cd09-0410-ab3c-d52691b4dbfc

ChangeLog
ManualTests/qt/double-tap-overscroll.html [new file with mode: 0644]
Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.cpp

index c7d8e77..c2abe17 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2012-04-25  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
+
+        [Qt] Zoom back can overscroll document edges.
+        https://bugs.webkit.org/show_bug.cgi?id=84851
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        Manual test for overscroll on zoom-back. Needs to be manual since we do not yet
+        have automatic testing for this type of UI-side behaviour.
+
+        * ManualTests/qt/double-tap-overscroll.html: Added.
+
 2012-04-24  Yael Aharon  <yael.aharon@nokia.com>
 
         Fixed background is scrolling in http://www.nieuwecode.nl/ in Qt webkit2
diff --git a/ManualTests/qt/double-tap-overscroll.html b/ManualTests/qt/double-tap-overscroll.html
new file mode 100644 (file)
index 0000000..93d0338
--- /dev/null
@@ -0,0 +1,4 @@
+<html>
+    <div style='width:200; height:200; background-color:red;'></div>
+    <p>Double tap the red box twice. The test passes if the viewport remains within document borders.
+</html>
\ No newline at end of file
index 26b5630..59de31a 100644 (file)
@@ -1,3 +1,13 @@
+2012-04-25  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
+
+        [Qt] Zoom back can overscroll document edges.
+        https://bugs.webkit.org/show_bug.cgi?id=84851
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        * UIProcess/qt/QtViewportInteractionEngine.cpp:
+        (WebKit::QtViewportInteractionEngine::zoomToAreaGestureEnded):
+
 2012-04-18  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
 
         [Qt] Make the web view's url property follow the active url
index 9b0c6d3..09f6324 100644 (file)
@@ -415,8 +415,11 @@ void QtViewportInteractionEngine::zoomToAreaGestureEnded(const QPointF& touchPoi
     case ZoomBack: {
         ScaleStackItem lastScale = m_scaleStack.takeLast();
         endItemScale = lastScale.scale;
+        // Recalculate endPosition and bound it according to new scale.
         endPosition.setY(hotspot.y() * endItemScale - viewportHotspot.y());
         endPosition.setX(lastScale.xPosition);
+        endPosRange = computePosRangeForItemAtScale(endItemScale);
+        endPosition = boundPosition(endPosRange.topLeft(), endPosition, endPosRange.bottomRight());
         endVisibleContentRect = QRectF(endPosition / endItemScale, viewportRect.size() / endItemScale);
         break;
     }