summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Adam Powell <adamp@google.com> 2011-03-08 20:00:25 -0800
committer Android (Google) Code Review <android-gerrit@google.com> 2011-03-08 20:00:25 -0800
commit1250c94b50a3322e44c8ded7ab15bd6da9cc82a7 (patch)
treea04268faabed2a8ee2dcd10e9f2b883642d250d9
parentf986d496c56fc8ae44b03f982e3e1ed437cdb996 (diff)
parentae9d2640f3502eae7bd5bed2cfc7d8f190d1fcb4 (diff)
Merge "Bug 3509417 - Refine touch event serialization" into honeycomb-mr1
-rw-r--r--core/java/android/webkit/WebView.java21
-rw-r--r--core/java/android/webkit/WebViewCore.java1
2 files changed, 12 insertions, 10 deletions
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index eb792b868c6c..9b1f157d9c72 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -5566,7 +5566,7 @@ public class WebView extends AbsoluteLayout
ted.mReprocess = mDeferTouchProcess;
ted.mNativeLayer = nativeScrollableLayer(
contentX, contentY, ted.mNativeLayerRect, null);
- ted.mDontEnqueueResult = true;
+ ted.mSequence = mTouchEventQueue.nextTouchSequence();
mWebViewCore.sendMessage(EventHub.TOUCH_EVENT, ted);
if (mDeferTouchProcess) {
// still needs to set them for compute deltaX/Y
@@ -5613,7 +5613,7 @@ public class WebView extends AbsoluteLayout
ted.mReprocess = mDeferTouchProcess;
ted.mNativeLayer = mScrollingLayer;
ted.mNativeLayerRect.set(mScrollingLayerRect);
- ted.mDontEnqueueResult = true;
+ ted.mSequence = mTouchEventQueue.nextTouchSequence();
mWebViewCore.sendMessage(EventHub.TOUCH_EVENT, ted);
mLastSentTouchTime = eventTime;
if (mDeferTouchProcess) {
@@ -5795,7 +5795,7 @@ public class WebView extends AbsoluteLayout
ted.mReprocess = mDeferTouchProcess;
ted.mNativeLayer = mScrollingLayer;
ted.mNativeLayerRect.set(mScrollingLayerRect);
- ted.mDontEnqueueResult = true;
+ ted.mSequence = mTouchEventQueue.nextTouchSequence();
mWebViewCore.sendMessage(EventHub.TOUCH_EVENT, ted);
}
mLastTouchUpTime = eventTime;
@@ -5818,7 +5818,7 @@ public class WebView extends AbsoluteLayout
ted.mNativeLayer = nativeScrollableLayer(
contentX, contentY,
ted.mNativeLayerRect, null);
- ted.mDontEnqueueResult = true;
+ ted.mSequence = mTouchEventQueue.nextTouchSequence();
mWebViewCore.sendMessage(EventHub.TOUCH_EVENT, ted);
} else if (mPreventDefault != PREVENT_DEFAULT_YES){
mZoomManager.handleDoubleTap(mLastTouchX, mLastTouchY);
@@ -6036,7 +6036,7 @@ public class WebView extends AbsoluteLayout
ted.mAction = MotionEvent.ACTION_CANCEL;
ted.mNativeLayer = nativeScrollableLayer(
x, y, ted.mNativeLayerRect, null);
- ted.mDontEnqueueResult = true;
+ ted.mSequence = mTouchEventQueue.nextTouchSequence();
mWebViewCore.sendMessage(EventHub.TOUCH_EVENT, ted);
mPreventDefault = PREVENT_DEFAULT_IGNORE;
}
@@ -7520,7 +7520,7 @@ public class WebView extends AbsoluteLayout
ted.mNativeLayer = nativeScrollableLayer(
ted.mPoints[0].x, ted.mPoints[0].y,
ted.mNativeLayerRect, null);
- ted.mDontEnqueueResult = true;
+ ted.mSequence = mTouchEventQueue.nextTouchSequence();
mWebViewCore.sendMessage(EventHub.TOUCH_EVENT, ted);
} else if (mPreventDefault != PREVENT_DEFAULT_YES) {
mTouchMode = TOUCH_DONE_MODE;
@@ -7736,9 +7736,12 @@ public class WebView extends AbsoluteLayout
break;
}
TouchEventData ted = (TouchEventData) msg.obj;
- if (!ted.mDontEnqueueResult) {
- mTouchEventQueue.enqueueTouchEvent(ted);
- }
+
+ // WebCore is responding to us; remove pending timeout.
+ // It will be re-posted when needed.
+ removeMessages(PREVENT_DEFAULT_TIMEOUT);
+
+ mTouchEventQueue.enqueueTouchEvent(ted);
break;
case REQUEST_KEYBOARD:
diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java
index f367b93820de..b920a30fd2a9 100644
--- a/core/java/android/webkit/WebViewCore.java
+++ b/core/java/android/webkit/WebViewCore.java
@@ -827,7 +827,6 @@ final class WebViewCore {
Rect mNativeLayerRect = new Rect();
long mSequence;
boolean mNativeResult;
- boolean mDontEnqueueResult;
}
static class GeolocationPermissionsData {