diff options
| author | 2011-02-24 15:30:15 -0800 | |
|---|---|---|
| committer | 2011-02-24 17:15:46 -0800 | |
| commit | 61bb911938d055ece3a95f9ba5aa014175a37fa4 (patch) | |
| tree | bec50bd825d0512efb7c156958e53f7eea7be0c1 | |
| parent | 7e8a69ed5cbeb2bad630877a526ff0c06880d2c2 (diff) | |
Make sure pinch zoom and overview scale are within limits
issue: 3482463
Change-Id: I9d746883c03326bdfa7fb0373ffadfbc75f69087
| -rw-r--r-- | core/java/android/webkit/ZoomManager.java | 6 |
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; |