diff options
| -rw-r--r-- | core/java/android/widget/FastScroller.java | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/core/java/android/widget/FastScroller.java b/core/java/android/widget/FastScroller.java index 67c0def552e8..13fe5a435e5d 100644 --- a/core/java/android/widget/FastScroller.java +++ b/core/java/android/widget/FastScroller.java @@ -428,12 +428,21 @@ class FastScroller { if (mListAdapter == null && mList != null) { getSectionsFromIndexer(); } + if (mList != null) { + mList.requestDisallowInterceptTouchEvent(true); + } cancelFling(); return true; } - } else if (action == MotionEvent.ACTION_UP) { + } else if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_CANCEL) { if (mState == STATE_DRAGGING) { + if (mList != null) { + // ViewGroup does the right thing already, but there might + // be other classes that don't properly reset on touch-up, + // so do this explicitly just in case. + mList.requestDisallowInterceptTouchEvent(false); + } setState(STATE_VISIBLE); final Handler handler = mHandler; handler.removeCallbacks(mScrollFade); |
