Merge "Fix bug 4083825 - Gesture zoom locked along content edges under some circumstances" into honeycomb-mr1

This commit is contained in:
Adam Powell
2011-03-11 16:39:42 -08:00
committed by Android (Google) Code Review

View File

@@ -777,12 +777,15 @@ class ZoomManager {
} }
private class ScaleDetectorListener implements ScaleGestureDetector.OnScaleGestureListener { private class ScaleDetectorListener implements ScaleGestureDetector.OnScaleGestureListener {
private float mAccumulatedSpan;
public boolean onScaleBegin(ScaleGestureDetector detector) { public boolean onScaleBegin(ScaleGestureDetector detector) {
mInitialZoomOverview = false; mInitialZoomOverview = false;
dismissZoomPicker(); dismissZoomPicker();
mFocusMovementQueue.clear(); mFocusMovementQueue.clear();
mWebView.mViewManager.startZoom(); mWebView.mViewManager.startZoom();
mWebView.onPinchToZoomAnimationStart(); mWebView.onPinchToZoomAnimationStart();
mAccumulatedSpan = 0;
return true; return true;
} }
@@ -797,8 +800,15 @@ class ZoomManager {
FloatMath.sqrt((mFocusX - prevFocusX) * (mFocusX - prevFocusX) FloatMath.sqrt((mFocusX - prevFocusX) * (mFocusX - prevFocusX)
+ (mFocusY - prevFocusY) * (mFocusY - prevFocusY)); + (mFocusY - prevFocusY) * (mFocusY - prevFocusY));
mFocusMovementQueue.add(focusDelta); mFocusMovementQueue.add(focusDelta);
float deltaSpan = Math.abs(detector.getCurrentSpan() - detector.getPreviousSpan()); float deltaSpan = detector.getCurrentSpan() - detector.getPreviousSpan() +
return mFocusMovementQueue.getSum() > deltaSpan; mAccumulatedSpan;
final boolean result = mFocusMovementQueue.getSum() > Math.abs(deltaSpan);
if (result) {
mAccumulatedSpan += deltaSpan;
} else {
mAccumulatedSpan = 0;
}
return result;
} }
public boolean handleScale(ScaleGestureDetector detector) { public boolean handleScale(ScaleGestureDetector detector) {