From 94c478e9e59683fd552fd11b2b7b27fac78b90b4 Mon Sep 17 00:00:00 2001 From: John Reck Date: Wed, 16 May 2012 20:12:12 -0700 Subject: Don't send an ontouchmove until slop is exceeded Bug: 6490959 Change-Id: I0f447f65c84f9ce208ce52caba05e7dcb2f76bc5 --- core/java/android/webkit/WebViewInputDispatcher.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'core/java/android/webkit/WebViewInputDispatcher.java') diff --git a/core/java/android/webkit/WebViewInputDispatcher.java b/core/java/android/webkit/WebViewInputDispatcher.java index 9eeb31167df0..c5a86d824239 100644 --- a/core/java/android/webkit/WebViewInputDispatcher.java +++ b/core/java/android/webkit/WebViewInputDispatcher.java @@ -822,21 +822,31 @@ final class WebViewInputDispatcher { } private void enqueueEventLocked(DispatchEvent d) { - if (!shouldSkipWebKit(d.mEventType)) { + if (!shouldSkipWebKit(d)) { enqueueWebKitEventLocked(d); } else { enqueueUiEventLocked(d); } } - private boolean shouldSkipWebKit(int eventType) { - switch (eventType) { + private boolean shouldSkipWebKit(DispatchEvent d) { + switch (d.mEventType) { case EVENT_TYPE_CLICK: case EVENT_TYPE_HOVER: case EVENT_TYPE_SCROLL: case EVENT_TYPE_HIT_TEST: return false; case EVENT_TYPE_TOUCH: + // TODO: This should be cleaned up. We now have WebViewInputDispatcher + // and WebViewClassic both checking for slop and doing their own + // thing - they should be consolidated. And by consolidated, I mean + // WebViewClassic's version should just be deleted. + // The reason this is done is because webpages seem to expect + // that they only get an ontouchmove if the slop has been exceeded. + if (mIsTapCandidate && d.mEvent != null + && d.mEvent.getActionMasked() == MotionEvent.ACTION_MOVE) { + return true; + } return !mPostSendTouchEventsToWebKit || mPostDoNotSendTouchEventsToWebKitUntilNextGesture; } -- cgit v1.2.3