From 51a6bee6719820d09595f474264fcb833eff470a Mon Sep 17 00:00:00 2001 From: Adam Powell Date: Mon, 15 Mar 2010 14:07:28 -0700 Subject: [PATCH] Fix bugs when transitioning out of touch mode Change-Id: I56cbac17fba500871af839a87d746ea8e1fd5d0f --- core/java/android/view/ViewRoot.java | 3 ++- core/java/android/widget/AbsListView.java | 10 +++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/core/java/android/view/ViewRoot.java b/core/java/android/view/ViewRoot.java index 582ef3f40d29a..484922ddd31f2 100644 --- a/core/java/android/view/ViewRoot.java +++ b/core/java/android/view/ViewRoot.java @@ -2241,7 +2241,8 @@ public final class ViewRoot extends Handler implements ViewParent, * leaving touch mode alone is considered the event). */ private boolean checkForLeavingTouchModeAndConsume(KeyEvent event) { - if (event.getAction() != KeyEvent.ACTION_DOWN) { + final int action = event.getAction(); + if (action != KeyEvent.ACTION_DOWN && action != KeyEvent.ACTION_MULTIPLE) { return false; } if ((event.getFlags()&KeyEvent.FLAG_KEEP_TOUCH_MODE) != 0) { diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index 5bded0b796599..a07397f4ff08d 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -1980,11 +1980,11 @@ public abstract class AbsListView extends AdapterView implements Te if (touchMode == TOUCH_MODE_OVERSCROLL || touchMode == TOUCH_MODE_OVERFLING) { if (mFlingRunnable != null) { mFlingRunnable.endFling(); - - if (mScrollY != 0) { - mScrollY = 0; - invalidate(); - } + } + + if (mScrollY != 0) { + mScrollY = 0; + invalidate(); } } }