summaryrefslogtreecommitdiffstats
path: root/core/java/android/text
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 /core/java/android/text
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
Diffstat (limited to 'core/java/android/text')
-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);