summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Yuichiro Hanada <yhanada@google.com> 2019-01-09 11:24:45 +0900
committer Yuichiro Hanada <yhanada@google.com> 2019-01-10 15:34:32 +0900
commiteed724d1358e8e7841448219d4a671e6c57c5e34 (patch)
treedeced30a43ef211cced1bbad7f56011940f62c7a
parent036da579e21dad83b42c551f64b93356be3bd529 (diff)
Move copy, cut and paste shortcut handler to onKeyDown().
The shortcut handler for Shift-Delete was added in onKeyShortcut(), but it's called after onKeyDown() and the event are consumed by BaseKeyListener before reaching to onKeyShortcut(). Fix: 122079351 Test: atest CtsWidgetTestCases:android.widget.cts.TextViewTest Change-Id: Ifee0144bdd3c4f0552bc4c4f3e5b844502bc937e
-rw-r--r--core/java/android/widget/TextView.java39
1 files changed, 20 insertions, 19 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index 0ea8579fafe6..af2c17b80280 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -8061,6 +8061,26 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
}
}
break;
+
+ case KeyEvent.KEYCODE_FORWARD_DEL:
+ if (event.hasModifiers(KeyEvent.META_SHIFT_ON) && canCut()) {
+ if (onTextContextMenuItem(ID_CUT)) {
+ return KEY_EVENT_HANDLED;
+ }
+ }
+ break;
+
+ case KeyEvent.KEYCODE_INSERT:
+ if (event.hasModifiers(KeyEvent.META_CTRL_ON) && canCopy()) {
+ if (onTextContextMenuItem(ID_COPY)) {
+ return KEY_EVENT_HANDLED;
+ }
+ } else if (event.hasModifiers(KeyEvent.META_SHIFT_ON) && canPaste()) {
+ if (onTextContextMenuItem(ID_PASTE)) {
+ return KEY_EVENT_HANDLED;
+ }
+ }
+ break;
}
if (mEditor != null && mEditor.mKeyListener != null) {
@@ -10831,25 +10851,6 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
return onTextContextMenuItem(ID_PASTE);
}
break;
- case KeyEvent.KEYCODE_INSERT:
- if (canCopy()) {
- return onTextContextMenuItem(ID_COPY);
- }
- break;
- }
- } else if (event.hasModifiers(KeyEvent.META_SHIFT_ON)) {
- // Handle Shift-only shortcuts.
- switch (keyCode) {
- case KeyEvent.KEYCODE_FORWARD_DEL:
- if (canCut()) {
- return onTextContextMenuItem(ID_CUT);
- }
- break;
- case KeyEvent.KEYCODE_INSERT:
- if (canPaste()) {
- return onTextContextMenuItem(ID_PASTE);
- }
- break;
}
} else if (event.hasModifiers(KeyEvent.META_CTRL_ON | KeyEvent.META_SHIFT_ON)) {
// Handle Ctrl-Shift shortcuts.