diff --git a/core/java/android/view/ScaleGestureDetector.java b/core/java/android/view/ScaleGestureDetector.java index 7d896809de646..fa0313949e01c 100644 --- a/core/java/android/view/ScaleGestureDetector.java +++ b/core/java/android/view/ScaleGestureDetector.java @@ -213,8 +213,7 @@ public class ScaleGestureDetector { for (int i = 0; i < count; i++) { if (skipIndex == i) continue; - // touchMajor/Minor are axes of an ellipse; average them together and - // convert the resulting 'diameter' into a radius. + // Average touch major and touch minor and convert the resulting diameter into a radius. final float touchSize = (event.getTouchMajor(i) + event.getTouchMinor(i)) / 4; devSumX += Math.abs(event.getX(i) - focusX) + touchSize; devSumY += Math.abs(event.getY(i) - focusY) + touchSize; @@ -245,7 +244,7 @@ public class ScaleGestureDetector { mPrevSpanY = mCurrSpanY = spanY; mInitialSpan = mPrevSpan = mCurrSpan = span; } - if (!mInProgress && span > mMinSpan && + if (!mInProgress && span >= mMinSpan && (wasInProgress || Math.abs(span - mInitialSpan) > mSpanSlop)) { mPrevSpanX = mCurrSpanX = spanX; mPrevSpanY = mCurrSpanY = spanY; diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index c97c2140704ae..93d7fcc4cdfdf 100755 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -927,8 +927,14 @@ 1 + bucket should consider tuning this value in a device-specific overlay. + For best results, care should be taken such that this value remains + larger than the minimum reported touchMajor/touchMinor values + reported by the hardware. --> 25mm