summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Fischer <enf@google.com>2009-06-30 15:22:51 -0700
committerEric Fischer <enf@google.com>2009-06-30 15:22:51 -0700
commit58b971d733a2c700cabd3db02b6ea4d5faca6939 (patch)
tree9e1a09aacc31af2a2671dfa4d8248fd72bc7de96
parent1dac277f93a80c53a870b8924508dd2af81293de (diff)
downloadframeworks_base-58b971d733a2c700cabd3db02b6ea4d5faca6939.zip
frameworks_base-58b971d733a2c700cabd3db02b6ea4d5faca6939.tar.gz
frameworks_base-58b971d733a2c700cabd3db02b6ea4d5faca6939.tar.bz2
Always clear the TextView drag state whenever a touch begins.
Apparently it can sometimes miss a touch release, which would prevent the longpress menu from appearing if the location of the new touch was too far from the location of the previous touch. Bug 1673223
-rw-r--r--core/java/android/text/method/Touch.java6
1 files changed, 6 insertions, 0 deletions
diff --git a/core/java/android/text/method/Touch.java b/core/java/android/text/method/Touch.java
index f2fb9cb..dfc16f5 100644
--- a/core/java/android/text/method/Touch.java
+++ b/core/java/android/text/method/Touch.java
@@ -81,6 +81,12 @@ public class Touch {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
+ ds = buffer.getSpans(0, buffer.length(), DragState.class);
+
+ for (int i = 0; i < ds.length; i++) {
+ buffer.removeSpan(ds[i]);
+ }
+
buffer.setSpan(new DragState(event.getX(), event.getY(),
widget.getScrollX(), widget.getScrollY()),
0, 0, Spannable.SPAN_MARK_MARK);