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