Loading core/java/android/view/MotionEvent.java +0 −4 Original line number Diff line number Diff line Loading @@ -2881,10 +2881,6 @@ public final class MotionEvent extends InputEvent implements Parcelable { msg.append(", id[").append(i).append("]=").append(getPointerId(i)); msg.append(", x[").append(i).append("]=").append(getX(i)); msg.append(", y[").append(i).append("]=").append(getY(i)); msg.append(", pressure[").append(i).append("]=").append(getPressure(i)); msg.append(", touchMajor[").append(i).append("]=").append(getTouchMajor(i)); msg.append(", touchMinor[").append(i).append("]=").append(getTouchMinor(i)); msg.append(", orientation[").append(i).append("]=").append(getOrientation(i)); msg.append(", toolType[").append(i).append("]=").append( toolTypeToString(getToolType(i))); } Loading core/java/android/webkit/WebView.java +37 −63 Original line number Diff line number Diff line Loading @@ -3467,40 +3467,6 @@ public class WebView extends AbsoluteLayout return Math.min(duration, MAX_DURATION); } // Helper to build a TouchEventData object from a MotionEvent object. // A few fields are allocated now but will be set later: // mAction, mPoints and mPointsInView. private static TouchEventData buildTouchFromEvent(MotionEvent ev) { TouchEventData ted = new TouchEventData(); ted.mAction = ev.getActionMasked(); ted.mEventTime = ev.getEventTime(); final int count = ev.getPointerCount(); ted.mIds = new int[count]; ted.mPoints = new Point[count]; ted.mPointsInView = new Point[count]; ted.mPressures = new float[count]; ted.mTouchMajor = new int[count]; ted.mTouchMinor = new int[count]; ted.mOrientation = new float[count]; for (int c = 0; c < count; c++) { ted.mIds[c] = ev.getPointerId(c); ted.mPressures[c] = ev.getPressure(c); ted.mTouchMajor[c] = (int) ev.getTouchMajor(c); ted.mTouchMinor[c] = (int) ev.getTouchMinor(c); ted.mOrientation[c] = ev.getOrientation(c); } if (ted.mAction == MotionEvent.ACTION_POINTER_DOWN || ted.mAction == MotionEvent.ACTION_POINTER_UP) { ted.mActionIndex = ev.getActionIndex(); } ted.mMetaState = ev.getMetaState(); return ted; } // helper to pin the scrollBy parameters (already in view coordinates) // returns true if the scroll was changed private boolean pinScrollBy(int dx, int dy, boolean animate, int animationDuration) { Loading Loading @@ -5899,10 +5865,15 @@ public class WebView extends AbsoluteLayout } // pass the touch events from UI thread to WebCore thread if (shouldForwardTouchEvent()) { TouchEventData ted = buildTouchFromEvent(ev); TouchEventData ted = new TouchEventData(); ted.mAction = action; ted.mIds = new int[1]; ted.mIds[0] = ev.getPointerId(0); ted.mPoints = new Point[1]; ted.mPoints[0] = new Point(contentX, contentY); ted.mPointsInView = new Point[1]; ted.mPointsInView[0] = new Point(x, y); ted.mMetaState = ev.getMetaState(); ted.mReprocess = mDeferTouchProcess; ted.mNativeLayer = nativeScrollableLayer( contentX, contentY, ted.mNativeLayerRect, null); Loading Loading @@ -5944,10 +5915,15 @@ public class WebView extends AbsoluteLayout // pass the touch events from UI thread to WebCore thread if (shouldForwardTouchEvent() && mConfirmMove && (firstMove || eventTime - mLastSentTouchTime > mCurrentTouchInterval)) { TouchEventData ted = buildTouchFromEvent(ev); TouchEventData ted = new TouchEventData(); ted.mAction = action; ted.mIds = new int[1]; ted.mIds[0] = ev.getPointerId(0); ted.mPoints = new Point[1]; ted.mPoints[0] = new Point(contentX, contentY); ted.mPointsInView = new Point[1]; ted.mPointsInView[0] = new Point(x, y); ted.mMetaState = ev.getMetaState(); ted.mReprocess = mDeferTouchProcess; ted.mNativeLayer = mScrollingLayer; ted.mNativeLayerRect.set(mScrollingLayerRect); Loading Loading @@ -6117,10 +6093,15 @@ public class WebView extends AbsoluteLayout if (!isFocused()) requestFocus(); // pass the touch events from UI thread to WebCore thread if (shouldForwardTouchEvent()) { TouchEventData ted = buildTouchFromEvent(ev); TouchEventData ted = new TouchEventData(); ted.mIds = new int[1]; ted.mIds[0] = ev.getPointerId(0); ted.mAction = action; ted.mPoints = new Point[1]; ted.mPoints[0] = new Point(contentX, contentY); ted.mPointsInView = new Point[1]; ted.mPointsInView[0] = new Point(x, y); ted.mMetaState = ev.getMetaState(); ted.mReprocess = mDeferTouchProcess; ted.mNativeLayer = mScrollingLayer; ted.mNativeLayerRect.set(mScrollingLayerRect); Loading @@ -6137,10 +6118,15 @@ public class WebView extends AbsoluteLayout mPrivateHandler.removeMessages(SWITCH_TO_SHORTPRESS); mPrivateHandler.removeMessages(SWITCH_TO_LONGPRESS); if (inFullScreenMode() || mDeferTouchProcess) { TouchEventData ted = buildTouchFromEvent(ev); TouchEventData ted = new TouchEventData(); ted.mIds = new int[1]; ted.mIds[0] = ev.getPointerId(0); ted.mAction = WebViewCore.ACTION_DOUBLETAP; ted.mPoints = new Point[1]; ted.mPoints[0] = new Point(contentX, contentY); ted.mPointsInView = new Point[1]; ted.mPointsInView[0] = new Point(x, y); ted.mMetaState = ev.getMetaState(); ted.mReprocess = mDeferTouchProcess; ted.mNativeLayer = nativeScrollableLayer( contentX, contentY, Loading Loading @@ -6272,14 +6258,24 @@ public class WebView extends AbsoluteLayout } private void passMultiTouchToWebKit(MotionEvent ev, long sequence) { TouchEventData ted = buildTouchFromEvent(ev); for (int c = 0; c < ev.getPointerCount(); c++) { TouchEventData ted = new TouchEventData(); ted.mAction = ev.getActionMasked(); final int count = ev.getPointerCount(); ted.mIds = new int[count]; ted.mPoints = new Point[count]; ted.mPointsInView = new Point[count]; for (int c = 0; c < count; c++) { ted.mIds[c] = ev.getPointerId(c); int x = viewToContentX((int) ev.getX(c) + mScrollX); int y = viewToContentY((int) ev.getY(c) + mScrollY); ted.mPoints[c] = new Point(x, y); ted.mPointsInView[c] = new Point((int) ev.getX(c), (int) ev.getY(c)); } if (ted.mAction == MotionEvent.ACTION_POINTER_DOWN || ted.mAction == MotionEvent.ACTION_POINTER_UP) { ted.mActionIndex = ev.getActionIndex(); } ted.mMetaState = ev.getMetaState(); ted.mReprocess = true; ted.mMotionEvent = MotionEvent.obtain(ev); ted.mSequence = sequence; Loading Loading @@ -6353,11 +6349,7 @@ public class WebView extends AbsoluteLayout if (removeEvents) { mWebViewCore.removeMessages(EventHub.TOUCH_EVENT); } TouchEventData ted = new TouchEventData(); ted.mAction = MotionEvent.ACTION_CANCEL; ted.mEventTime = mLastTouchTime; ted.mMetaState = 0; ted.mIds = new int[1]; ted.mIds[0] = 0; ted.mPoints = new Point[1]; Loading @@ -6366,15 +6358,7 @@ public class WebView extends AbsoluteLayout int viewX = contentToViewX(x) - mScrollX; int viewY = contentToViewY(y) - mScrollY; ted.mPointsInView[0] = new Point(viewX, viewY); ted.mPressures = new float[1]; ted.mPressures[0] = 1; ted.mTouchMajor = new int[1]; ted.mTouchMajor[0] = 1; ted.mTouchMinor = new int[1]; ted.mTouchMinor[0] = 1; ted.mOrientation = new float[1]; ted.mOrientation[0] = 0; ted.mAction = MotionEvent.ACTION_CANCEL; ted.mNativeLayer = nativeScrollableLayer( x, y, ted.mNativeLayerRect, null); ted.mSequence = mTouchEventQueue.nextTouchSequence(); Loading Loading @@ -8053,7 +8037,6 @@ public class WebView extends AbsoluteLayout if (inFullScreenMode() || mDeferTouchProcess) { TouchEventData ted = new TouchEventData(); ted.mAction = WebViewCore.ACTION_LONGPRESS; ted.mEventTime = mLastTouchTime; ted.mIds = new int[1]; ted.mIds[0] = 0; ted.mPoints = new Point[1]; Loading @@ -8061,15 +8044,6 @@ public class WebView extends AbsoluteLayout viewToContentY(mLastTouchY + mScrollY)); ted.mPointsInView = new Point[1]; ted.mPointsInView[0] = new Point(mLastTouchX, mLastTouchY); ted.mPressures = new float[1]; ted.mPressures[0] = 1; ted.mTouchMajor = new int[1]; ted.mTouchMajor[0] = 1; ted.mTouchMinor = new int[1]; ted.mTouchMinor[0] = 1; ted.mOrientation = new float[1]; ted.mOrientation[0] = 0; // metaState for long press is tricky. Should it be the // state when the press started or when the press was // released? Or some intermediary key state? For Loading core/java/android/webkit/WebViewCore.java +9 −19 Original line number Diff line number Diff line Loading @@ -577,10 +577,8 @@ public final class WebViewCore { private native void nativeTouchUp(int touchGeneration, int framePtr, int nodePtr, int x, int y); private native boolean nativeHandleTouchEvent(int action, long eventTime, int[] idArray, int[] xArray, int[] yArray, float[] pressureArray, int[] touchMajorArray, int[] touchMinorArray, float[] orientationArray, int count, int actionIndex, int metaState); private native boolean nativeHandleTouchEvent(int action, int[] idArray, int[] xArray, int[] yArray, int count, int actionIndex, int metaState); private native void nativeUpdateFrameCache(); Loading Loading @@ -835,21 +833,16 @@ public final class WebViewCore { static class TouchEventData { int mAction; long mEventTime; // Time (in ms) this event was generated. int[] mIds; // Ids of the touch points. int[] mIds; // Ids of the touch points Point[] mPoints; Point[] mPointsInView; // Point coordinates in view axis. float[] mPressures; // Pressures of the touch points. int[] mTouchMajor; // Length of the major axis of the touch area. int[] mTouchMinor; // Length of the minor axis of the touch area. float[] mOrientation; // The orientation of the touch area. int mActionIndex; // Associated pointer index for ACTION_POINTER_DOWN/UP. Point[] mPointsInView; // the point coordinates in view axis. int mActionIndex; // Associated pointer index for ACTION_POINTER_DOWN/UP int mMetaState; boolean mReprocess; MotionEvent mMotionEvent; // Only used for multi-touch. MotionEvent mMotionEvent; int mNativeLayer; Rect mNativeLayerRect = new Rect(); long mSequence; // For queuing the events. long mSequence; boolean mNativeResult; } Loading Loading @@ -1358,11 +1351,8 @@ public final class WebViewCore { nativeScrollLayer(ted.mNativeLayer, ted.mNativeLayerRect); } ted.mNativeResult = nativeHandleTouchEvent( ted.mAction, ted.mEventTime, ted.mIds, xArray, yArray, ted.mPressures, ted.mTouchMajor, ted.mTouchMinor, ted.mOrientation, count, ted.mActionIndex, ted.mMetaState); ted.mNativeResult = nativeHandleTouchEvent(ted.mAction, ted.mIds, xArray, yArray, count, ted.mActionIndex, ted.mMetaState); Message.obtain( mWebView.mPrivateHandler, WebView.PREVENT_TOUCH_ID, Loading Loading
core/java/android/view/MotionEvent.java +0 −4 Original line number Diff line number Diff line Loading @@ -2881,10 +2881,6 @@ public final class MotionEvent extends InputEvent implements Parcelable { msg.append(", id[").append(i).append("]=").append(getPointerId(i)); msg.append(", x[").append(i).append("]=").append(getX(i)); msg.append(", y[").append(i).append("]=").append(getY(i)); msg.append(", pressure[").append(i).append("]=").append(getPressure(i)); msg.append(", touchMajor[").append(i).append("]=").append(getTouchMajor(i)); msg.append(", touchMinor[").append(i).append("]=").append(getTouchMinor(i)); msg.append(", orientation[").append(i).append("]=").append(getOrientation(i)); msg.append(", toolType[").append(i).append("]=").append( toolTypeToString(getToolType(i))); } Loading
core/java/android/webkit/WebView.java +37 −63 Original line number Diff line number Diff line Loading @@ -3467,40 +3467,6 @@ public class WebView extends AbsoluteLayout return Math.min(duration, MAX_DURATION); } // Helper to build a TouchEventData object from a MotionEvent object. // A few fields are allocated now but will be set later: // mAction, mPoints and mPointsInView. private static TouchEventData buildTouchFromEvent(MotionEvent ev) { TouchEventData ted = new TouchEventData(); ted.mAction = ev.getActionMasked(); ted.mEventTime = ev.getEventTime(); final int count = ev.getPointerCount(); ted.mIds = new int[count]; ted.mPoints = new Point[count]; ted.mPointsInView = new Point[count]; ted.mPressures = new float[count]; ted.mTouchMajor = new int[count]; ted.mTouchMinor = new int[count]; ted.mOrientation = new float[count]; for (int c = 0; c < count; c++) { ted.mIds[c] = ev.getPointerId(c); ted.mPressures[c] = ev.getPressure(c); ted.mTouchMajor[c] = (int) ev.getTouchMajor(c); ted.mTouchMinor[c] = (int) ev.getTouchMinor(c); ted.mOrientation[c] = ev.getOrientation(c); } if (ted.mAction == MotionEvent.ACTION_POINTER_DOWN || ted.mAction == MotionEvent.ACTION_POINTER_UP) { ted.mActionIndex = ev.getActionIndex(); } ted.mMetaState = ev.getMetaState(); return ted; } // helper to pin the scrollBy parameters (already in view coordinates) // returns true if the scroll was changed private boolean pinScrollBy(int dx, int dy, boolean animate, int animationDuration) { Loading Loading @@ -5899,10 +5865,15 @@ public class WebView extends AbsoluteLayout } // pass the touch events from UI thread to WebCore thread if (shouldForwardTouchEvent()) { TouchEventData ted = buildTouchFromEvent(ev); TouchEventData ted = new TouchEventData(); ted.mAction = action; ted.mIds = new int[1]; ted.mIds[0] = ev.getPointerId(0); ted.mPoints = new Point[1]; ted.mPoints[0] = new Point(contentX, contentY); ted.mPointsInView = new Point[1]; ted.mPointsInView[0] = new Point(x, y); ted.mMetaState = ev.getMetaState(); ted.mReprocess = mDeferTouchProcess; ted.mNativeLayer = nativeScrollableLayer( contentX, contentY, ted.mNativeLayerRect, null); Loading Loading @@ -5944,10 +5915,15 @@ public class WebView extends AbsoluteLayout // pass the touch events from UI thread to WebCore thread if (shouldForwardTouchEvent() && mConfirmMove && (firstMove || eventTime - mLastSentTouchTime > mCurrentTouchInterval)) { TouchEventData ted = buildTouchFromEvent(ev); TouchEventData ted = new TouchEventData(); ted.mAction = action; ted.mIds = new int[1]; ted.mIds[0] = ev.getPointerId(0); ted.mPoints = new Point[1]; ted.mPoints[0] = new Point(contentX, contentY); ted.mPointsInView = new Point[1]; ted.mPointsInView[0] = new Point(x, y); ted.mMetaState = ev.getMetaState(); ted.mReprocess = mDeferTouchProcess; ted.mNativeLayer = mScrollingLayer; ted.mNativeLayerRect.set(mScrollingLayerRect); Loading Loading @@ -6117,10 +6093,15 @@ public class WebView extends AbsoluteLayout if (!isFocused()) requestFocus(); // pass the touch events from UI thread to WebCore thread if (shouldForwardTouchEvent()) { TouchEventData ted = buildTouchFromEvent(ev); TouchEventData ted = new TouchEventData(); ted.mIds = new int[1]; ted.mIds[0] = ev.getPointerId(0); ted.mAction = action; ted.mPoints = new Point[1]; ted.mPoints[0] = new Point(contentX, contentY); ted.mPointsInView = new Point[1]; ted.mPointsInView[0] = new Point(x, y); ted.mMetaState = ev.getMetaState(); ted.mReprocess = mDeferTouchProcess; ted.mNativeLayer = mScrollingLayer; ted.mNativeLayerRect.set(mScrollingLayerRect); Loading @@ -6137,10 +6118,15 @@ public class WebView extends AbsoluteLayout mPrivateHandler.removeMessages(SWITCH_TO_SHORTPRESS); mPrivateHandler.removeMessages(SWITCH_TO_LONGPRESS); if (inFullScreenMode() || mDeferTouchProcess) { TouchEventData ted = buildTouchFromEvent(ev); TouchEventData ted = new TouchEventData(); ted.mIds = new int[1]; ted.mIds[0] = ev.getPointerId(0); ted.mAction = WebViewCore.ACTION_DOUBLETAP; ted.mPoints = new Point[1]; ted.mPoints[0] = new Point(contentX, contentY); ted.mPointsInView = new Point[1]; ted.mPointsInView[0] = new Point(x, y); ted.mMetaState = ev.getMetaState(); ted.mReprocess = mDeferTouchProcess; ted.mNativeLayer = nativeScrollableLayer( contentX, contentY, Loading Loading @@ -6272,14 +6258,24 @@ public class WebView extends AbsoluteLayout } private void passMultiTouchToWebKit(MotionEvent ev, long sequence) { TouchEventData ted = buildTouchFromEvent(ev); for (int c = 0; c < ev.getPointerCount(); c++) { TouchEventData ted = new TouchEventData(); ted.mAction = ev.getActionMasked(); final int count = ev.getPointerCount(); ted.mIds = new int[count]; ted.mPoints = new Point[count]; ted.mPointsInView = new Point[count]; for (int c = 0; c < count; c++) { ted.mIds[c] = ev.getPointerId(c); int x = viewToContentX((int) ev.getX(c) + mScrollX); int y = viewToContentY((int) ev.getY(c) + mScrollY); ted.mPoints[c] = new Point(x, y); ted.mPointsInView[c] = new Point((int) ev.getX(c), (int) ev.getY(c)); } if (ted.mAction == MotionEvent.ACTION_POINTER_DOWN || ted.mAction == MotionEvent.ACTION_POINTER_UP) { ted.mActionIndex = ev.getActionIndex(); } ted.mMetaState = ev.getMetaState(); ted.mReprocess = true; ted.mMotionEvent = MotionEvent.obtain(ev); ted.mSequence = sequence; Loading Loading @@ -6353,11 +6349,7 @@ public class WebView extends AbsoluteLayout if (removeEvents) { mWebViewCore.removeMessages(EventHub.TOUCH_EVENT); } TouchEventData ted = new TouchEventData(); ted.mAction = MotionEvent.ACTION_CANCEL; ted.mEventTime = mLastTouchTime; ted.mMetaState = 0; ted.mIds = new int[1]; ted.mIds[0] = 0; ted.mPoints = new Point[1]; Loading @@ -6366,15 +6358,7 @@ public class WebView extends AbsoluteLayout int viewX = contentToViewX(x) - mScrollX; int viewY = contentToViewY(y) - mScrollY; ted.mPointsInView[0] = new Point(viewX, viewY); ted.mPressures = new float[1]; ted.mPressures[0] = 1; ted.mTouchMajor = new int[1]; ted.mTouchMajor[0] = 1; ted.mTouchMinor = new int[1]; ted.mTouchMinor[0] = 1; ted.mOrientation = new float[1]; ted.mOrientation[0] = 0; ted.mAction = MotionEvent.ACTION_CANCEL; ted.mNativeLayer = nativeScrollableLayer( x, y, ted.mNativeLayerRect, null); ted.mSequence = mTouchEventQueue.nextTouchSequence(); Loading Loading @@ -8053,7 +8037,6 @@ public class WebView extends AbsoluteLayout if (inFullScreenMode() || mDeferTouchProcess) { TouchEventData ted = new TouchEventData(); ted.mAction = WebViewCore.ACTION_LONGPRESS; ted.mEventTime = mLastTouchTime; ted.mIds = new int[1]; ted.mIds[0] = 0; ted.mPoints = new Point[1]; Loading @@ -8061,15 +8044,6 @@ public class WebView extends AbsoluteLayout viewToContentY(mLastTouchY + mScrollY)); ted.mPointsInView = new Point[1]; ted.mPointsInView[0] = new Point(mLastTouchX, mLastTouchY); ted.mPressures = new float[1]; ted.mPressures[0] = 1; ted.mTouchMajor = new int[1]; ted.mTouchMajor[0] = 1; ted.mTouchMinor = new int[1]; ted.mTouchMinor[0] = 1; ted.mOrientation = new float[1]; ted.mOrientation[0] = 0; // metaState for long press is tricky. Should it be the // state when the press started or when the press was // released? Or some intermediary key state? For Loading
core/java/android/webkit/WebViewCore.java +9 −19 Original line number Diff line number Diff line Loading @@ -577,10 +577,8 @@ public final class WebViewCore { private native void nativeTouchUp(int touchGeneration, int framePtr, int nodePtr, int x, int y); private native boolean nativeHandleTouchEvent(int action, long eventTime, int[] idArray, int[] xArray, int[] yArray, float[] pressureArray, int[] touchMajorArray, int[] touchMinorArray, float[] orientationArray, int count, int actionIndex, int metaState); private native boolean nativeHandleTouchEvent(int action, int[] idArray, int[] xArray, int[] yArray, int count, int actionIndex, int metaState); private native void nativeUpdateFrameCache(); Loading Loading @@ -835,21 +833,16 @@ public final class WebViewCore { static class TouchEventData { int mAction; long mEventTime; // Time (in ms) this event was generated. int[] mIds; // Ids of the touch points. int[] mIds; // Ids of the touch points Point[] mPoints; Point[] mPointsInView; // Point coordinates in view axis. float[] mPressures; // Pressures of the touch points. int[] mTouchMajor; // Length of the major axis of the touch area. int[] mTouchMinor; // Length of the minor axis of the touch area. float[] mOrientation; // The orientation of the touch area. int mActionIndex; // Associated pointer index for ACTION_POINTER_DOWN/UP. Point[] mPointsInView; // the point coordinates in view axis. int mActionIndex; // Associated pointer index for ACTION_POINTER_DOWN/UP int mMetaState; boolean mReprocess; MotionEvent mMotionEvent; // Only used for multi-touch. MotionEvent mMotionEvent; int mNativeLayer; Rect mNativeLayerRect = new Rect(); long mSequence; // For queuing the events. long mSequence; boolean mNativeResult; } Loading Loading @@ -1358,11 +1351,8 @@ public final class WebViewCore { nativeScrollLayer(ted.mNativeLayer, ted.mNativeLayerRect); } ted.mNativeResult = nativeHandleTouchEvent( ted.mAction, ted.mEventTime, ted.mIds, xArray, yArray, ted.mPressures, ted.mTouchMajor, ted.mTouchMinor, ted.mOrientation, count, ted.mActionIndex, ted.mMetaState); ted.mNativeResult = nativeHandleTouchEvent(ted.mAction, ted.mIds, xArray, yArray, count, ted.mActionIndex, ted.mMetaState); Message.obtain( mWebView.mPrivateHandler, WebView.PREVENT_TOUCH_ID, Loading