diff options
| author | 2014-07-30 10:49:21 -0700 | |
|---|---|---|
| committer | 2014-08-05 23:01:15 +0000 | |
| commit | ce0c13a169931e757b98d0f40239c508caa237bd (patch) | |
| tree | 1b036b89daf75f790db044300dc5586f379272b2 | |
| parent | 5f72e168471827b48700d791d6f10b0e53bb18fb (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.java | 5 | ||||
| -rw-r--r-- | policy/src/com/android/internal/policy/impl/PhoneWindowManager.java | 11 |
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; } |