Merge "Fix bug 4083825 - Gesture zoom locked along content edges under some circumstances" into honeycomb-mr1
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user