Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 110486f9 authored by Adam Powell's avatar Adam Powell
Browse files

Fix a bug where requestDisallowInterceptTouchEvent does not get called

when scrolling is resumed after stopping a fling.

Change-Id: I6796c5082cb81b3116de5baf1f27fe3addb40d00
parent 750600a1
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -223,8 +223,9 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager

    /**
     * When set, this ViewGroup should not intercept touch events.
     * {@hide}
     */
    private static final int FLAG_DISALLOW_INTERCEPT = 0x80000;
    protected static final int FLAG_DISALLOW_INTERCEPT = 0x80000;

    /**
     * Indicates which types of drawing caches are to be kept in memory.
+8 −0
Original line number Diff line number Diff line
@@ -2056,6 +2056,14 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te
                }

                if (y != mLastY) {
                    // We may be here after stopping a fling and continuing to scroll.
                    // If so, we haven't disallowed intercepting touch events yet.
                    // Make sure that we do so in case we're in a parent that can intercept.
                    if ((mGroupFlags & FLAG_DISALLOW_INTERCEPT) == 0 &&
                            Math.abs(deltaY) > mTouchSlop) {
                        requestDisallowInterceptTouchEvent(true);
                    }

                    deltaY -= mMotionCorrection;
                    int incrementalDeltaY = mLastY != Integer.MIN_VALUE ? y - mLastY : deltaY;