From d43fe07852a23c78da3b51b45469687c20be919a Mon Sep 17 00:00:00 2001 From: Marco Nelissen Date: Wed, 3 Feb 2010 10:22:21 -0800 Subject: Make the fastscroll thumb tell the parent to not intercept touch events, to keep the list from moving sideways in a "workspace" environment. Fixes one of the issues listed in bug 2374212 --- core/java/android/widget/FastScroller.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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); -- cgit v1.2.3-59-g8ed1b