summaryrefslogtreecommitdiff
path: root/core/java/android/view/ViewRoot.java
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2010-12-21 16:38:50 -0800
committerJeff Brown <jeffbrown@google.com>2010-12-21 17:39:12 -0800
commitc1df907e3950fd8d2efac110edd72ea07b3b441e (patch)
treec6bfa074155a655621c36147edc4b712f295b976 /core/java/android/view/ViewRoot.java
parent68e8ed38feffb8608858a6bfc3a14d183bf5a166 (diff)
Support invoking key shortcuts using Control.
This enables Select All, Cut, Copy and Paste behavior in TextViews and provides a general pattern for implementing additional keyboard accelerators based on Control key shortcuts. The same shortcuts also apply to menu accelerators. Bug: 3286262 Change-Id: I7d458ee26abf51e0de1735ce490ce3baf504b471
Diffstat (limited to 'core/java/android/view/ViewRoot.java')
-rw-r--r--core/java/android/view/ViewRoot.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/core/java/android/view/ViewRoot.java b/core/java/android/view/ViewRoot.java
index 281dd2771d7c..5d8170274a01 100644
--- a/core/java/android/view/ViewRoot.java
+++ b/core/java/android/view/ViewRoot.java
@@ -2626,6 +2626,16 @@ public final class ViewRoot extends Handler implements ViewParent,
return;
}
+ // If the Control modifier is held, try to interpret the key as a shortcut.
+ if (event.getAction() == KeyEvent.ACTION_UP
+ && event.isCtrlPressed()
+ && !KeyEvent.isModifierKey(event.getKeyCode())) {
+ if (mView.dispatchKeyShortcutEvent(event)) {
+ finishKeyEvent(event, sendDone, true);
+ return;
+ }
+ }
+
// Apply the fallback event policy.
if (mFallbackEventHandler.dispatchKeyEvent(event)) {
finishKeyEvent(event, sendDone, true);