Fix bugs when transitioning out of touch mode
Change-Id: I56cbac17fba500871af839a87d746ea8e1fd5d0f
diff --git a/core/java/android/view/ViewRoot.java b/core/java/android/view/ViewRoot.java
index 582ef3f..484922d 100644
--- a/core/java/android/view/ViewRoot.java
+++ b/core/java/android/view/ViewRoot.java
@@ -2241,7 +2241,8 @@
* 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 5bded0b..a07397f 100644
--- a/core/java/android/widget/AbsListView.java
+++ b/core/java/android/widget/AbsListView.java
@@ -1980,11 +1980,11 @@
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();
}
}
}