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 11cfc9af8ca7fa069d01970574d7bc9c87a2492c..3ee52e862976573aaa5484ef6d37bc001c0dde56 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 |
@@ -1232,6 +1232,7 @@ public class ContentViewCore |
@SuppressWarnings("unused") |
@CalledByNative |
private void onFlingStartEventConsumed(int vx, int vy) { |
+ temporarilyHideTextHandles(); |
for (mGestureStateListenersIterator.rewind(); |
mGestureStateListenersIterator.hasNext();) { |
mGestureStateListenersIterator.next().onFlingStartGesture( |
@@ -1257,12 +1258,15 @@ public class ContentViewCore |
@SuppressWarnings("unused") |
@CalledByNative |
private void onScrollBeginEventAck() { |
+ temporarilyHideTextHandles(); |
+ mZoomControlsDelegate.invokeZoomPicker(); |
updateGestureStateListener(GestureEventType.SCROLL_START); |
} |
@SuppressWarnings("unused") |
@CalledByNative |
private void onScrollUpdateGestureConsumed() { |
+ mZoomControlsDelegate.invokeZoomPicker(); |
for (mGestureStateListenersIterator.rewind(); |
mGestureStateListenersIterator.hasNext();) { |
mGestureStateListenersIterator.next().onScrollUpdateGestureConsumed(); |
@@ -1278,6 +1282,7 @@ public class ContentViewCore |
@SuppressWarnings("unused") |
@CalledByNative |
private void onPinchBeginEventAck() { |
+ temporarilyHideTextHandles(); |
updateGestureStateListener(GestureEventType.PINCH_BEGIN); |
} |
@@ -1287,21 +1292,23 @@ public class ContentViewCore |
updateGestureStateListener(GestureEventType.PINCH_END); |
} |
+ @SuppressWarnings("unused") |
+ @CalledByNative |
+ private void onDoubleTapEventAck() { |
+ temporarilyHideTextHandles(); |
+ } |
+ |
/** |
- * Called just prior to a gesture being forwarded to the renderer. All listening |
- * for the sending of (synthetic or touch-derived) gestures should occur here. |
+ * Called just prior to a tap or press gesture being forwarded to the renderer. |
*/ |
@SuppressWarnings("unused") |
@CalledByNative |
- private boolean filterGestureEvent(int type, int x, int y) { |
- if (offerGestureToEmbedder(type)) return true; |
- updateTextHandlesForGesture(type); |
+ private boolean filterTapOrPressEvent(int type, int x, int y) { |
+ if (type == GestureEventType.LONG_PRESS && offerLongPressToEmbedder()) { |
+ return true; |
+ } |
updateForTapOrPress(type, x, y); |
updateForDoubleTapUMA(type); |
- // TODO(jdduke): Determine if this should be called while a pinch is active. |
- if (type == GestureEventType.SCROLL_BY) { |
- mZoomControlsDelegate.invokeZoomPicker(); |
- } |
return false; |
} |
@@ -2393,20 +2400,6 @@ public class ContentViewCore |
return mInsertionHandleController != null && mInsertionHandleController.isShowing(); |
} |
- private void updateTextHandlesForGesture(int type) { |
- switch(type) { |
- case GestureEventType.DOUBLE_TAP: |
- case GestureEventType.SCROLL_START: |
- case GestureEventType.FLING_START: |
- case GestureEventType.PINCH_BEGIN: |
- temporarilyHideTextHandles(); |
- break; |
- |
- default: |
- break; |
- } |
- } |
- |
// Makes the insertion/selection handles invisible. They will fade back in shortly after the |
// last call to scheduleTextHandleFadeIn (or temporarilyHideTextHandles). |
private void temporarilyHideTextHandles() { |
@@ -3265,18 +3258,12 @@ public class ContentViewCore |
} |
/** |
- * Offer a subset of gesture events to the embedding View, |
- * primarily for WebView compatibility. |
- * |
- * @param type The type of the event. |
+ * Offer a long press gesture to the embedding View, primarily for WebView compatibility. |
* |
* @return true if the embedder handled the event. |
*/ |
- private boolean offerGestureToEmbedder(int type) { |
- if (type == GestureEventType.LONG_PRESS) { |
- return mContainerView.performLongClick(); |
- } |
- return false; |
+ private boolean offerLongPressToEmbedder() { |
+ return mContainerView.performLongClick(); |
} |
private native long nativeInit(long webContentsPtr, |