summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Grace Kloba <klobag@google.com> 2010-01-20 23:06:43 -0800
committer Grace Kloba <klobag@google.com> 2010-01-20 23:06:43 -0800
commitd5ada83c719d366d3063572ca6ce5ab8918fd39b (patch)
tree0b60b778c9edf86452b8bd88ab42db88310c6649
parente834722f547d13eaa453464502456892c6225e42 (diff)
ScaleGestureDetector needs to query the displaymetrics
for the width/height on each touch down as orientation can change. This should fix the problem where we can't pinch on the top right corner when device is in landscape mode.
-rw-r--r--core/java/android/view/ScaleGestureDetector.java8
1 files changed, 5 insertions, 3 deletions
diff --git a/core/java/android/view/ScaleGestureDetector.java b/core/java/android/view/ScaleGestureDetector.java
index 2f1c2b2dacf1..f991df7b637f 100644
--- a/core/java/android/view/ScaleGestureDetector.java
+++ b/core/java/android/view/ScaleGestureDetector.java
@@ -147,12 +147,9 @@ public class ScaleGestureDetector {
public ScaleGestureDetector(Context context, OnScaleGestureListener listener) {
ViewConfiguration config = ViewConfiguration.get(context);
- DisplayMetrics metrics = context.getResources().getDisplayMetrics();
mContext = context;
mListener = listener;
mEdgeSlop = config.getScaledEdgeSlop();
- mRightSlopEdge = metrics.widthPixels - mEdgeSlop;
- mBottomSlopEdge = metrics.heightPixels - mEdgeSlop;
}
public boolean onTouchEvent(MotionEvent event) {
@@ -165,6 +162,11 @@ public class ScaleGestureDetector {
event.getPointerCount() >= 2) {
// We have a new multi-finger gesture
+ // as orientation can change, query the metrics in touch down
+ DisplayMetrics metrics = mContext.getResources().getDisplayMetrics();
+ mRightSlopEdge = metrics.widthPixels - mEdgeSlop;
+ mBottomSlopEdge = metrics.heightPixels - mEdgeSlop;
+
// Be paranoid in case we missed an event
reset();