Index: content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java |
diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java |
index 5bd4ed79fe778231d725e699352fe3364bdfc25d..bf2ae38f1d52860b77773ea554dc29b55f229807 100644 |
--- a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java |
+++ b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java |
@@ -198,11 +198,6 @@ public class ContentViewCore |
void onPinchGestureEnd(); |
/** |
- * Called when the fling gesture is sent. |
- */ |
- void onFlingStartGesture(int vx, int vy); |
- |
- /** |
* Called when the fling cancel gesture is sent. |
*/ |
void onFlingCancelGesture(); |
@@ -210,7 +205,7 @@ public class ContentViewCore |
/** |
* Called when a fling event was not handled by the renderer. |
*/ |
- void onUnhandledFlingStartEvent(); |
+ void onUnhandledFlingStartEvent(int velocityX, int velocityY); |
/** |
* Called to indicate that a scroll update gesture had been consumed by the page. |
@@ -1338,39 +1333,44 @@ public class ContentViewCore |
} |
@Override |
- public boolean sendTouchEvent(long timeMs, int action, TouchPoint[] pts) { |
- if (mNativeContentViewCore != 0) { |
- return nativeSendTouchEvent(mNativeContentViewCore, timeMs, action, pts); |
- } |
- return false; |
+ public void onTouchEventHandlingBegin(long timeMs, int action, TouchPoint[] pts) { |
+ if (mNativeContentViewCore == 0) return; |
+ nativeOnTouchEventHandlingBegin(mNativeContentViewCore, timeMs, action, pts); |
} |
- @SuppressWarnings("unused") |
- @CalledByNative |
- private void hasTouchEventHandlers(boolean hasTouchHandlers) { |
- mContentViewGestureHandler.hasTouchEventHandlers(hasTouchHandlers); |
+ @Override |
+ public void onTouchEventHandlingEnd() { |
+ if (mNativeContentViewCore == 0) return; |
+ nativeOnTouchEventHandlingEnd(mNativeContentViewCore); |
} |
@SuppressWarnings("unused") |
@CalledByNative |
- private void confirmTouchEvent(int ackResult) { |
- mContentViewGestureHandler.confirmTouchEvent(ackResult); |
+ private void unhandledFlingStartEvent(float vx, float vy) { |
+ if (mGestureStateListener != null) { |
+ mGestureStateListener.onUnhandledFlingStartEvent((int) vx, (int) vy); |
+ } |
} |
@SuppressWarnings("unused") |
@CalledByNative |
- private void unhandledFlingStartEvent() { |
+ private void onScrollUpdateGestureConsumed() { |
if (mGestureStateListener != null) { |
- mGestureStateListener.onUnhandledFlingStartEvent(); |
+ mGestureStateListener.onScrollUpdateGestureConsumed(); |
} |
} |
@SuppressWarnings("unused") |
@CalledByNative |
- private void onScrollUpdateGestureConsumed() { |
- if (mGestureStateListener != null) { |
- mGestureStateListener.onScrollUpdateGestureConsumed(); |
+ private boolean filterGesture(int type, int x, int y) { |
tdresser
2014/01/14 16:25:30
Can we find a better name for this? It isn't clear
jdduke (slow)
2014/01/15 20:36:36
Sure. I guess the common pattern on Android is |o
|
+ if (offerGestureToEmbedder(type)) return true; |
+ updateTextHandlesForGesture(type); |
+ updateGestureStateListener(type); |
+ updateForTapOrPress(type, x, y); |
+ if (type == ContentViewGestureHandler.GESTURE_SCROLL_BY) { |
+ mZoomControlsDelegate.invokeZoomPicker(); |
} |
+ return false; |
} |
private void reportActionAfterDoubleTapUMA(int type) { |
@@ -1379,10 +1379,7 @@ public class ContentViewCore |
@Override |
public boolean sendGesture(int type, long timeMs, int x, int y, Bundle b) { |
- if (offerGestureToEmbedder(type)) return false; |
if (mNativeContentViewCore == 0) return false; |
- updateTextHandlesForGesture(type); |
- updateGestureStateListener(type, b); |
switch (type) { |
case ContentViewGestureHandler.GESTURE_SHOW_PRESSED_STATE: |
nativeShowPressState(mNativeContentViewCore, timeMs, x, y); |
@@ -1400,17 +1397,19 @@ public class ContentViewCore |
nativeSingleTap(mNativeContentViewCore, timeMs, x, y, false); |
return true; |
case ContentViewGestureHandler.GESTURE_SINGLE_TAP_CONFIRMED: |
- handleTapOrPress(timeMs, x, y, 0, |
- b.getBoolean(ContentViewGestureHandler.SHOW_PRESS, false)); |
+ if (!b.getBoolean(ContentViewGestureHandler.SHOW_PRESS, false)) { |
+ nativeShowPressState(mNativeContentViewCore, timeMs, x, y); |
+ } |
+ nativeSingleTap(mNativeContentViewCore, timeMs, x, y, false); |
return true; |
case ContentViewGestureHandler.GESTURE_SINGLE_TAP_UNCONFIRMED: |
nativeSingleTapUnconfirmed(mNativeContentViewCore, timeMs, x, y); |
return true; |
case ContentViewGestureHandler.GESTURE_LONG_PRESS: |
- handleTapOrPress(timeMs, x, y, IS_LONG_PRESS, false); |
+ nativeLongPress(mNativeContentViewCore, timeMs, x, y, false); |
return true; |
case ContentViewGestureHandler.GESTURE_LONG_TAP: |
- handleTapOrPress(timeMs, x, y, IS_LONG_TAP, false); |
+ nativeLongTap(mNativeContentViewCore, timeMs, x, y, false); |
return true; |
case ContentViewGestureHandler.GESTURE_SCROLL_START: { |
int dx = b.getInt(ContentViewGestureHandler.DELTA_HINT_X); |
@@ -1479,7 +1478,7 @@ public class ContentViewCore |
mGestureStateListener = pinchGestureStateListener; |
} |
- void updateGestureStateListener(int gestureType, Bundle b) { |
+ void updateGestureStateListener(int gestureType) { |
if (mGestureStateListener == null) return; |
switch (gestureType) { |
@@ -1489,11 +1488,6 @@ public class ContentViewCore |
case ContentViewGestureHandler.GESTURE_PINCH_END: |
mGestureStateListener.onPinchGestureEnd(); |
break; |
- case ContentViewGestureHandler.GESTURE_FLING_START: |
- mGestureStateListener.onFlingStartGesture( |
- b.getInt(ContentViewGestureHandler.VELOCITY_X, 0), |
- b.getInt(ContentViewGestureHandler.VELOCITY_Y, 0)); |
- break; |
case ContentViewGestureHandler.GESTURE_FLING_CANCEL: |
mGestureStateListener.onFlingCancelGesture(); |
break; |
@@ -1815,9 +1809,9 @@ public class ContentViewCore |
* @see View#onWindowFocusChanged(boolean) |
*/ |
public void onWindowFocusChanged(boolean hasWindowFocus) { |
- if (!hasWindowFocus) { |
- mContentViewGestureHandler.onWindowFocusLost(); |
- } |
+ //if (!hasWindowFocus) { |
Rick Byers
2014/01/14 00:23:16
what's this about?
jdduke (slow)
2014/01/14 00:39:17
Ah, yeah, good catch. I disabled this during testi
|
+ // mContentViewGestureHandler.onWindowFocusLost(); |
+ //} |
} |
public void onFocusChanged(boolean gainFocus) { |
@@ -2024,8 +2018,11 @@ public class ContentViewCore |
} |
} |
- private void handleTapOrPress( |
- long timeMs, float xPix, float yPix, int isLongPressOrTap, boolean showPress) { |
+ private void updateForTapOrPress(int type, float xPix, float yPix) { |
+ if (type != ContentViewGestureHandler.GESTURE_SINGLE_TAP_CONFIRMED |
+ && type != ContentViewGestureHandler.GESTURE_LONG_PRESS |
+ && type != ContentViewGestureHandler.GESTURE_LONG_TAP) return; |
+ |
if (mContainerView.isFocusable() && mContainerView.isFocusableInTouchMode() |
&& !mContainerView.isFocused()) { |
mContainerView.requestFocus(); |
@@ -2033,26 +2030,14 @@ public class ContentViewCore |
if (!mPopupZoomer.isShowing()) mPopupZoomer.setLastTouch(xPix, yPix); |
- if (isLongPressOrTap == IS_LONG_PRESS) { |
+ if (type == ContentViewGestureHandler.GESTURE_LONG_PRESS) { |
getInsertionHandleController().allowAutomaticShowing(); |
getSelectionHandleController().allowAutomaticShowing(); |
- if (mNativeContentViewCore != 0) { |
- nativeLongPress(mNativeContentViewCore, timeMs, xPix, yPix, false); |
- } |
- } else if (isLongPressOrTap == IS_LONG_TAP) { |
+ } else if (type == ContentViewGestureHandler.GESTURE_LONG_TAP) { |
getInsertionHandleController().allowAutomaticShowing(); |
getSelectionHandleController().allowAutomaticShowing(); |
- if (mNativeContentViewCore != 0) { |
- nativeLongTap(mNativeContentViewCore, timeMs, xPix, yPix, false); |
- } |
} else { |
- if (!showPress && mNativeContentViewCore != 0) { |
- nativeShowPressState(mNativeContentViewCore, timeMs, xPix, yPix); |
- } |
if (mSelectionEditable) getInsertionHandleController().allowAutomaticShowing(); |
- if (mNativeContentViewCore != 0) { |
- nativeSingleTap(mNativeContentViewCore, timeMs, xPix, yPix, false); |
- } |
} |
} |
@@ -2792,14 +2777,6 @@ public class ContentViewCore |
} |
/** |
- * Invokes the graphical zoom picker widget for this ContentView. |
- */ |
- @Override |
- public void invokeZoomPicker() { |
- mZoomControlsDelegate.invokeZoomPicker(); |
- } |
- |
- /** |
* This will mimic {@link #addPossiblyUnsafeJavascriptInterface(Object, String, Class)} |
* and automatically pass in {@link JavascriptInterface} as the required annotation. |
* |
@@ -3289,9 +3266,11 @@ public class ContentViewCore |
long nativeContentViewCoreImpl, int orientation); |
// All touch events (including flings, scrolls etc) accept coordinates in physical pixels. |
- private native boolean nativeSendTouchEvent( |
+ private native void nativeOnTouchEventHandlingBegin( |
long nativeContentViewCoreImpl, long timeMs, int action, TouchPoint[] pts); |
+ private native void nativeOnTouchEventHandlingEnd(long nativeContentViewCoreImpl); |
+ |
private native int nativeSendMouseMoveEvent( |
long nativeContentViewCoreImpl, long timeMs, float x, float y); |