Index: chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandler.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandler.java |
index 66ca0c30e2b8137f19853f5f688322f2098d3c38..4e2c465f0dc9286039f8e40e5024e5f07114c863 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandler.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandler.java |
@@ -6,6 +6,7 @@ package org.chromium.chrome.browser.appmenu; |
import android.app.Activity; |
import android.content.res.TypedArray; |
+import android.graphics.Point; |
import android.graphics.Rect; |
import android.graphics.drawable.Drawable; |
import android.view.ContextThemeWrapper; |
@@ -94,8 +95,18 @@ public class AppMenuHandler { |
// Get the height and width of the display. |
Rect appRect = new Rect(); |
mActivity.getWindow().getDecorView().getWindowVisibleDisplayFrame(appRect); |
+ |
+ // Use full size of window for abnormal appRect. |
+ if (appRect.left < 0 && appRect.top < 0) { |
+ appRect.left = 0; |
+ appRect.top = 0; |
+ appRect.right = mActivity.getWindow().getDecorView().getWidth(); |
+ appRect.bottom = mActivity.getWindow().getDecorView().getHeight(); |
+ } |
int rotation = mActivity.getWindowManager().getDefaultDisplay().getRotation(); |
- mAppMenu.show(wrapper, anchorView, isByHardwareButton, rotation, appRect); |
+ Point pt = new Point(); |
+ mActivity.getWindowManager().getDefaultDisplay().getSize(pt); |
+ mAppMenu.show(wrapper, anchorView, isByHardwareButton, rotation, appRect, pt.y); |
mAppMenuDragHelper.onShow(startDragging); |
UmaBridge.menuShow(); |
return true; |