summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Powell <adamp@google.com>2010-03-24 14:05:55 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-03-24 14:05:55 -0700
commit3e8b72ac6e2e5237c21f7af28adaa595dd68ffe5 (patch)
treefa450b663220eb259461c2bc9d3a5be593a07a24
parentad069eb1d63ccd801b09f7996530227671bf9651 (diff)
parent9d0335b1e3a2c70506db2413ac8d8a0f88ba6bec (diff)
downloadframeworks_base-3e8b72ac6e2e5237c21f7af28adaa595dd68ffe5.zip
frameworks_base-3e8b72ac6e2e5237c21f7af28adaa595dd68ffe5.tar.gz
frameworks_base-3e8b72ac6e2e5237c21f7af28adaa595dd68ffe5.tar.bz2
Merge "Fix for bug 2502886 - stupid monkeys."
-rw-r--r--core/java/android/widget/HorizontalScrollView.java8
-rw-r--r--core/java/android/widget/ScrollView.java8
2 files changed, 14 insertions, 2 deletions
diff --git a/core/java/android/widget/HorizontalScrollView.java b/core/java/android/widget/HorizontalScrollView.java
index 702ce0a..0bbf7b8 100644
--- a/core/java/android/widget/HorizontalScrollView.java
+++ b/core/java/android/widget/HorizontalScrollView.java
@@ -410,7 +410,13 @@ public class HorizontalScrollView extends FrameLayout {
* Locally do absolute value. mLastMotionX is set to the x value
* of the down event.
*/
- final int pointerIndex = ev.findPointerIndex(mActivePointerId);
+ final int activePointerId = mActivePointerId;
+ if (activePointerId == INVALID_POINTER) {
+ // If we don't have a valid id, the touch down wasn't on content.
+ break;
+ }
+
+ final int pointerIndex = ev.findPointerIndex(activePointerId);
final float x = ev.getX(pointerIndex);
final int xDiff = (int) Math.abs(x - mLastMotionX);
if (xDiff > mTouchSlop) {
diff --git a/core/java/android/widget/ScrollView.java b/core/java/android/widget/ScrollView.java
index f009432..3cf2af2 100644
--- a/core/java/android/widget/ScrollView.java
+++ b/core/java/android/widget/ScrollView.java
@@ -408,7 +408,13 @@ public class ScrollView extends FrameLayout {
* Locally do absolute value. mLastMotionY is set to the y value
* of the down event.
*/
- final int pointerIndex = ev.findPointerIndex(mActivePointerId);
+ final int activePointerId = mActivePointerId;
+ if (activePointerId == INVALID_POINTER) {
+ // If we don't have a valid id, the touch down wasn't on content.
+ break;
+ }
+
+ final int pointerIndex = ev.findPointerIndex(activePointerId);
final float y = ev.getY(pointerIndex);
final int yDiff = (int) Math.abs(y - mLastMotionY);
if (yDiff > mTouchSlop) {