| 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 9733a58784af0c70ff24a72caa08e94a4c75e899..8c6c08bd5550de2c2772003b1a73bbbb11419111 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
|
| @@ -292,6 +292,7 @@ public class ContentViewCore
|
| // Lazily created paste popup menu, triggered either via long press in an
|
| // editable region or from tapping the insertion handle.
|
| private PastePopupMenu mPastePopupMenu;
|
| + private boolean mWasPastePopupShowingOnInsertionDragStart;
|
|
|
| private PopupTouchHandleDrawableDelegate mTouchHandleDelegate;
|
|
|
| @@ -2191,13 +2192,21 @@ public class ContentViewCore
|
| mHasInsertion = true;
|
| break;
|
|
|
| - case SelectionEventType.INSERTION_MOVED:
|
| - // TODO(jdduke): Handle case where movement triggered by focus.
|
| + case SelectionEventType.INSERTION_DRAG_STARTED:
|
| + mWasPastePopupShowingOnInsertionDragStart = getPastePopup().isShowing();
|
| hidePastePopup();
|
| break;
|
|
|
| + case SelectionEventType.INSERTION_MOVED:
|
| + if (getPastePopup().isShowing() && !isScrollInProgress()) {
|
| + showPastePopup((int) posXDip, (int) posYDip);
|
| + } else {
|
| + hidePastePopup();
|
| + }
|
| + break;
|
| +
|
| case SelectionEventType.INSERTION_TAPPED:
|
| - if (getPastePopup().isShowing())
|
| + if (mWasPastePopupShowingOnInsertionDragStart)
|
| mPastePopupMenu.hide();
|
| else
|
| showPastePopup((int) posXDip, (int) posYDip);
|
| @@ -2205,6 +2214,7 @@ public class ContentViewCore
|
|
|
| case SelectionEventType.INSERTION_CLEARED:
|
| mHasInsertion = false;
|
| + mWasPastePopupShowingOnInsertionDragStart = false;
|
| hidePastePopup();
|
| break;
|
|
|
|
|