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

Commit 680cfe28 authored by Adam Powell's avatar Adam Powell Committed by Android Git Automerger
Browse files

am 2737dfe0: am 5ec35c17: Merge "Fix bug 4082512 IAE "pointerIndex out of...

am 2737dfe0: am 5ec35c17: Merge "Fix bug 4082512 IAE "pointerIndex out of range" while zooming over flashplayer in browser" into honeycomb-mr1

* commit '2737dfe0':
  Fix bug 4082512 IAE "pointerIndex out of range" while zooming over flashplayer in browser
parents d2ca9fcd 2737dfe0
Loading
Loading
Loading
Loading
+28 −28
Original line number Diff line number Diff line
@@ -5954,10 +5954,9 @@ public class WebView extends AbsoluteLayout
        mWebViewCore.sendMessage(EventHub.TOUCH_EVENT, ted);
        cancelLongPress();
        mPrivateHandler.removeMessages(SWITCH_TO_LONGPRESS);
        mPreventDefault = PREVENT_DEFAULT_IGNORE;
    }

    private void handleMultiTouchInWebView(MotionEvent ev) {
    void handleMultiTouchInWebView(MotionEvent ev) {
        if (DebugFlags.WEB_VIEW) {
            Log.v(LOGTAG, "multi-touch: " + ev + " at " + ev.getEventTime()
                + " mTouchMode=" + mTouchMode
@@ -5975,6 +5974,7 @@ public class WebView extends AbsoluteLayout
        float x = ev.getX();
        float y = ev.getY();

        if (mPreventDefault != PREVENT_DEFAULT_YES) {
            detector.onTouchEvent(ev);

            if (detector.isInProgress()) {
@@ -5995,6 +5995,7 @@ public class WebView extends AbsoluteLayout
                    mVelocityTracker = VelocityTracker.obtain();
                }
            }
        }

        int action = ev.getActionMasked();
        if (action == MotionEvent.ACTION_POINTER_DOWN) {
@@ -7291,12 +7292,14 @@ public class WebView extends AbsoluteLayout
        }

        private void dropStaleGestures(MotionEvent ev, long sequence) {
            if (ev != null && ev.getAction() == MotionEvent.ACTION_DOWN &&
                    mTouchEventQueue != null) {
            if (mTouchEventQueue == null) return;

            MotionEvent nextQueueEvent = mTouchEventQueue.mTed != null ?
                    mTouchEventQueue.mTed.mMotionEvent : mTouchEventQueue.mEvent;

            if (ev != null && ev.getAction() == MotionEvent.ACTION_DOWN && nextQueueEvent != null) {
                long eventTime = ev.getEventTime();
                long nextQueueTime = mTouchEventQueue.mTed != null ?
                        mTouchEventQueue.mTed.mMotionEvent.getEventTime() :
                        mTouchEventQueue.mEvent.getEventTime();
                long nextQueueTime = nextQueueEvent.getEventTime();
                if (eventTime > nextQueueTime + QUEUED_GESTURE_TIMEOUT) {
                    Log.w(LOGTAG, "Got ACTION_DOWN but still waiting on stale event. " +
                            "Ignoring previous queued events.");
@@ -7339,7 +7342,7 @@ public class WebView extends AbsoluteLayout
                handleMultiTouchInWebView(ev);
            } else {
                final ScaleGestureDetector detector = mZoomManager.getMultiTouchGestureDetector();
                if (detector != null) {
                if (detector != null && mPreventDefault != PREVENT_DEFAULT_YES) {
                    // ScaleGestureDetector needs a consistent event stream to operate properly.
                    // It won't take any action with fewer than two pointers, but it needs to
                    // update internal bookkeeping state.
@@ -7372,10 +7375,7 @@ public class WebView extends AbsoluteLayout
                }
            } else {
                if (ted.mPoints.length > 1) {  // multi-touch
                    if (ted.mAction == MotionEvent.ACTION_POINTER_UP &&
                            ted.mMotionEvent.getPointerCount() == 2) {
                    }
                    if (!ted.mNativeResult) {
                    if (!ted.mNativeResult && mPreventDefault != PREVENT_DEFAULT_YES) {
                        mPreventDefault = PREVENT_DEFAULT_NO;
                        handleMultiTouchInWebView(ted.mMotionEvent);
                    } else {