summaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
Diffstat (limited to 'android')
-rw-r--r--android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java13
1 files changed, 13 insertions, 0 deletions
diff --git a/android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java b/android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java
index ce6f4e9b99f7..1d109cf426a1 100644
--- a/android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java
+++ b/android/source/src/java/org/mozilla/gecko/gfx/JavaPanZoomController.java
@@ -50,6 +50,9 @@ class JavaPanZoomController
// The maximum amount we allow you to zoom into a page
private static final float MAX_ZOOM = 4.0f;
+ // The threshold zoom factor of whether a double tap triggers zoom-in or zoom-out
+ private static final float DOUBLE_TAP_THRESHOLD = 1.0f;
+
// The maximum amount we would like to scroll with the mouse
private final float MAX_SCROLL;
@@ -981,6 +984,16 @@ class JavaPanZoomController
@Override
public boolean onDoubleTap(MotionEvent motionEvent) {
+ // Double tap zooms in or out depending on the current zoom factor
+ PointF viewPoint = getMotionInDocumentCoordinates(motionEvent);
+ ZoomConstraints constraints = mTarget.getZoomConstraints();
+ float zoomFactor = getMetrics().getZoomFactor();
+ if (zoomFactor >= DOUBLE_TAP_THRESHOLD) {
+ animatedMove(viewPoint, constraints.getMinZoom());
+ } else {
+ animatedMove(viewPoint, DOUBLE_TAP_THRESHOLD);
+ }
+
LOKitShell.sendTouchEvent("DoubleTap", getMotionInDocumentCoordinates(motionEvent));
return true;
}