summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Michael Wright <michaelwr@google.com> 2014-07-30 10:49:21 -0700
committer Michael Wright <michaelwr@google.com> 2014-08-05 23:01:15 +0000
commitce0c13a169931e757b98d0f40239c508caa237bd (patch)
tree1b036b89daf75f790db044300dc5586f379272b2
parent5f72e168471827b48700d791d6f10b0e53bb18fb (diff)
Mark all Meta combos as system combos
Also make a meta-tab a recents accelerator. Bug: 14066931 Change-Id: Iac6aab276e4e16d5f70c92a5a03172bd81559afa
-rw-r--r--core/java/android/view/KeyEvent.java5
-rw-r--r--policy/src/com/android/internal/policy/impl/PhoneWindowManager.java11
2 files changed, 11 insertions, 5 deletions
diff --git a/core/java/android/view/KeyEvent.java b/core/java/android/view/KeyEvent.java
index 8b2ec7a71aef..681717c2a5b7 100644
--- a/core/java/android/view/KeyEvent.java
+++ b/core/java/android/view/KeyEvent.java
@@ -1722,6 +1722,11 @@ public class KeyEvent extends InputEvent implements Parcelable {
return false;
}
+ /** @hide */
+ public static final boolean isMetaKey(int keyCode) {
+ return keyCode == KeyEvent.KEYCODE_META_LEFT || keyCode == KeyEvent.KEYCODE_META_RIGHT;
+ }
+
/** {@inheritDoc} */
@Override
public final int getDeviceId() {
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
index 324f5365b174..cbde02c4651c 100644
--- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -2138,7 +2138,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
// Cancel any pending meta actions if we see any other keys being pressed between the down
// of the meta key and its corresponding up.
- if (mPendingMetaAction && keyCode != KeyEvent.KEYCODE_META_LEFT) {
+ if (mPendingMetaAction && KeyEvent.isMetaKey(keyCode)) {
mPendingMetaAction = false;
}
@@ -2343,11 +2343,10 @@ public class PhoneWindowManager implements WindowManagerPolicy {
UserHandle.CURRENT_OR_SELF);
}
return -1;
- } else if (keyCode == KeyEvent.KEYCODE_META_LEFT) {
+ } else if (KeyEvent.isMetaKey(keyCode)) {
if (down) {
mPendingMetaAction = true;
} else if (mPendingMetaAction) {
- mPendingMetaAction = false;
launchAssistAction();
}
return -1;
@@ -2426,7 +2425,9 @@ public class PhoneWindowManager implements WindowManagerPolicy {
if (down && repeatCount == 0 && keyCode == KeyEvent.KEYCODE_TAB) {
if (mRecentAppsHeldModifiers == 0 && !keyguardOn) {
final int shiftlessModifiers = event.getModifiers() & ~KeyEvent.META_SHIFT_MASK;
- if (KeyEvent.metaStateHasModifiers(shiftlessModifiers, KeyEvent.META_ALT_ON)) {
+ if (KeyEvent.metaStateHasModifiers(shiftlessModifiers, KeyEvent.META_ALT_ON)
+ || KeyEvent.metaStateHasModifiers(
+ shiftlessModifiers, KeyEvent.META_META_ON)) {
mRecentAppsHeldModifiers = shiftlessModifiers;
showRecentApps(true);
return -1;
@@ -2459,7 +2460,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
}
// Reserve all the META modifier combos for system behavior
- if ((metaState & KeyEvent.META_META_LEFT_ON) != 0) {
+ if ((metaState & KeyEvent.META_META_ON) != 0) {
return -1;
}