summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Shimeng (Simon) Wang <swang@google.com> 2011-02-24 15:30:15 -0800
committer Shimeng (Simon) Wang <swang@google.com> 2011-02-24 17:15:46 -0800
commit61bb911938d055ece3a95f9ba5aa014175a37fa4 (patch)
treebec50bd825d0512efb7c156958e53f7eea7be0c1
parent7e8a69ed5cbeb2bad630877a526ff0c06880d2c2 (diff)
Make sure pinch zoom and overview scale are within limits
issue: 3482463 Change-Id: I9d746883c03326bdfa7fb0373ffadfbc75f69087
-rw-r--r--core/java/android/webkit/ZoomManager.java6
1 files changed, 4 insertions, 2 deletions
diff --git a/core/java/android/webkit/ZoomManager.java b/core/java/android/webkit/ZoomManager.java
index 74e6c40a6617..5e0de27bb173 100644
--- a/core/java/android/webkit/ZoomManager.java
+++ b/core/java/android/webkit/ZoomManager.java
@@ -629,7 +629,7 @@ class ZoomManager {
}
/* package */ float getZoomOverviewScale() {
- return mWebView.getViewWidth() * mInvZoomOverviewWidth;
+ return computeScaleWithLimits(mWebView.getViewWidth() * mInvZoomOverviewWidth);
}
public boolean isInZoomOverview() {
@@ -722,7 +722,8 @@ class ZoomManager {
public boolean onScale(ScaleGestureDetector detector) {
// Prevent scaling beyond overview scale.
- float scale = Math.max(detector.getScaleFactor() * mActualScale,
+ float scale = Math.max(
+ computeScaleWithLimits(detector.getScaleFactor() * mActualScale),
getZoomOverviewScale());
if (mPinchToZoomAnimating || willScaleTriggerZoom(scale)) {
mPinchToZoomAnimating = true;
@@ -732,6 +733,7 @@ class ZoomManager {
} else {
scale = Math.max(scale, mActualScale * 0.8f);
}
+ scale = computeScaleWithLimits(scale);
// if the scale change is too small, regard it as jitter and skip it.
if (Math.abs(scale - mActualScale) < MINIMUM_SCALE_WITHOUT_JITTER) {
return false;