diff options
| -rw-r--r-- | core/java/android/widget/Editor.java | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java index 26dd5e309fa7..012352d0a0f5 100644 --- a/core/java/android/widget/Editor.java +++ b/core/java/android/widget/Editor.java @@ -1705,15 +1705,23 @@ public class Editor { } private void updateFloatingToolbarVisibility(MotionEvent event) { - if (mTextActionMode != null) { - switch (event.getActionMasked()) { - case MotionEvent.ACTION_MOVE: - hideFloatingToolbar(ActionMode.DEFAULT_HIDE_DURATION); - break; - case MotionEvent.ACTION_UP: // fall through - case MotionEvent.ACTION_CANCEL: + if (mTextActionMode == null) { + return; + } + switch (event.getActionMasked()) { + case MotionEvent.ACTION_MOVE: + hideFloatingToolbar(ActionMode.DEFAULT_HIDE_DURATION); + break; + case MotionEvent.ACTION_UP: // fall through + case MotionEvent.ACTION_CANCEL: + final SelectionModifierCursorController selectionController = + getSelectionController(); + final InsertionPointCursorController insertionController = getInsertionController(); + if ((selectionController != null && selectionController.isCursorBeingModified()) + || (insertionController != null + && insertionController.isCursorBeingModified())) { showFloatingToolbar(); - } + } } } |