Chromium Code Reviews| 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 672fd3eea1b4074985f4fb1ffa9895dbf6e7afa7..ced9884fbaeaa0991955516e9843ab99a889e8aa 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 |
| @@ -293,6 +293,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; |
| @@ -2209,20 +2210,31 @@ 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 = mPastePopupMenu != null && |
|
jdduke (slow)
2014/08/08 15:11:41
Hmm, this is probably best formatted as
mWasPaste
AKVT
2014/08/08 15:25:43
Done. Thanks
|
| + mPastePopupMenu.isShowing(); |
| hidePastePopup(); |
| break; |
| + case SelectionEventType.INSERTION_MOVED: |
| + if (mPastePopupMenu != null && mPastePopupMenu.isShowing() && |
|
jdduke (slow)
2014/08/08 15:11:41
Looks like we can simplify this with:
if (mPasteP
AKVT
2014/08/08 15:25:43
Done.
|
| + !isScrollInProgress()) { |
| + showPastePopup((int) posXDip, (int) posYDip); |
| + } else { |
| + hidePastePopup(); |
| + } |
| + break; |
| + |
| case SelectionEventType.INSERTION_TAPPED: |
| - if (getPastePopup().isShowing()) |
| - mPastePopupMenu.hide(); |
| + if (mWasPastePopupShowingOnInsertionDragStart) |
| + hidePastePopup(); |
| else |
| showPastePopup((int) posXDip, (int) posYDip); |
| break; |
| case SelectionEventType.INSERTION_CLEARED: |
| mHasInsertion = false; |
| + mWasPastePopupShowingOnInsertionDragStart = false; |
|
jdduke (slow)
2014/08/08 15:11:41
No need to reset this flag, it will always be set
AKVT
2014/08/08 15:25:43
Done. Thanks
|
| hidePastePopup(); |
| break; |