diff options
| author | Adam Powell <adamp@google.com> | 2010-03-24 14:05:55 -0700 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-03-24 14:05:55 -0700 |
| commit | 3e8b72ac6e2e5237c21f7af28adaa595dd68ffe5 (patch) | |
| tree | fa450b663220eb259461c2bc9d3a5be593a07a24 | |
| parent | ad069eb1d63ccd801b09f7996530227671bf9651 (diff) | |
| parent | 9d0335b1e3a2c70506db2413ac8d8a0f88ba6bec (diff) | |
| download | frameworks_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.java | 8 | ||||
| -rw-r--r-- | core/java/android/widget/ScrollView.java | 8 |
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) { |
