Fix issue where Workspace scrolling doesn't work
=> The WorkspaceTouchListener was relying on receiving TOUCH_DOWN in order to
clear its state. This is not guaranteed; ie. when touches begin above
children of the workspace (icons or widgets)
=> Any invocation of the Workspace long press menu would trigger this issue
and it would persist until a touch went directly onto the Workspace in a
location without any children.
Bug 132298752
Change-Id: Id8617baaa1ce59dc84758a7c82049329323b04cc
diff --git a/src/com/android/launcher3/touch/WorkspaceTouchListener.java b/src/com/android/launcher3/touch/WorkspaceTouchListener.java
index 07ddccb..310d598 100644
--- a/src/com/android/launcher3/touch/WorkspaceTouchListener.java
+++ b/src/com/android/launcher3/touch/WorkspaceTouchListener.java
@@ -99,7 +99,6 @@
handleLongPress = mTempRect.contains((int) ev.getX(), (int) ev.getY());
}
- cancelLongPress();
if (handleLongPress) {
mLongPressState = STATE_REQUESTED;
mTouchDownPoint.set(ev.getX(), ev.getY());
@@ -148,6 +147,10 @@
}
}
+ if (action == ACTION_UP || action == ACTION_CANCEL) {
+ cancelLongPress();
+ }
+
return result;
}