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

Commit d66d84ff authored by Grace Kloba's avatar Grace Kloba
Browse files

Reset mPreventDrag at touch_down.

Check the delta for short press case as we may switch to
PREVENT_DRAG_NO at SWITCH_TO_SHORTPRESS.

This should fix another two corner cases where flick doesn't
do anything.
parent ba672802
Loading
Loading
Loading
Loading
+13 −11
Original line number Diff line number Diff line
@@ -3689,6 +3689,7 @@ public class WebView extends AbsoluteLayout

        switch (action) {
            case MotionEvent.ACTION_DOWN: {
                mPreventDrag = PREVENT_DRAG_NO;
                if (!mScroller.isFinished()) {
                    // stop the current scroll animation, but if this is
                    // the start of a fling, allow it to add to the current
@@ -3896,19 +3897,15 @@ public class WebView extends AbsoluteLayout
                        mTouchMode = TOUCH_DONE_MODE;
                        doDoubleTap();
                        break;
                    case TOUCH_SHORTPRESS_START_MODE:
                    case TOUCH_SHORTPRESS_MODE:
                        mPrivateHandler.removeMessages(SWITCH_TO_SHORTPRESS);
                        mPrivateHandler.removeMessages(SWITCH_TO_LONGPRESS);
                        mTouchMode = TOUCH_DONE_MODE;
                        doShortPress();
                        break;
                    case TOUCH_SELECT_MODE:
                        commitCopy();
                        mTouchSelection = false;
                        break;
                    case TOUCH_INIT_MODE: // tap
                    case TOUCH_SHORTPRESS_START_MODE:
                    case TOUCH_SHORTPRESS_MODE:
                        mPrivateHandler.removeMessages(SWITCH_TO_SHORTPRESS);
                        mPrivateHandler.removeMessages(SWITCH_TO_LONGPRESS);
                        if ((deltaX * deltaX + deltaY * deltaY) > mTouchSlopSquare) {
                            Log.w(LOGTAG, "Miss a drag as we are waiting for" +
                                    " WebCore's response for touch down.");
@@ -3928,10 +3925,15 @@ public class WebView extends AbsoluteLayout
                                mPreventDrag = PREVENT_DRAG_NO;
                            }
                            if (mPreventDrag == PREVENT_DRAG_NO) {
                                if (mTouchMode == TOUCH_INIT_MODE) {
                                    mPrivateHandler.sendMessageDelayed(
                                            mPrivateHandler.obtainMessage(
                                            RELEASE_SINGLE_TAP),
                                            ViewConfiguration.getDoubleTapTimeout());
                                } else {
                                    mTouchMode = TOUCH_DONE_MODE;
                                    doShortPress();
                                }
                            }
                            break;
                        }