Merge "Opening options popup on KeyEvent.KEYCODE_MENU." into ub-launcher3-master
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index fcf36ca..930ca63 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -2810,6 +2810,26 @@
return super.onKeyShortcut(keyCode, event);
}
+ @Override
+ public boolean onKeyUp(int keyCode, KeyEvent event) {
+ if (keyCode == KeyEvent.KEYCODE_MENU) {
+ // KEYCODE_MENU is sent by some tests, for example
+ // LauncherJankTests#testWidgetsContainerFling. Don't just remove its handling.
+ if (!mDragController.isDragging() && !mWorkspace.isSwitchingState() &&
+ isInState(NORMAL)) {
+ // Close any open floating views.
+ AbstractFloatingView.closeAllOpenViews(this);
+
+ // Setting the touch point to (-1, -1) will show the options popup in the center of
+ // the screen.
+ mLastDispatchTouchEvent.set(-1, -1);
+ UiFactory.onWorkspaceLongPress(this, mLastDispatchTouchEvent);
+ }
+ return true;
+ }
+ return super.onKeyUp(keyCode, event);
+ }
+
public static Launcher getLauncher(Context context) {
if (context instanceof Launcher) {
return (Launcher) context;