diff options
author | Eric Fischer <enf@google.com> | 2009-06-30 15:22:51 -0700 |
---|---|---|
committer | Eric Fischer <enf@google.com> | 2009-06-30 15:22:51 -0700 |
commit | 58b971d733a2c700cabd3db02b6ea4d5faca6939 (patch) | |
tree | 9e1a09aacc31af2a2671dfa4d8248fd72bc7de96 | |
parent | 1dac277f93a80c53a870b8924508dd2af81293de (diff) | |
download | frameworks_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.java | 6 |
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); |