X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fchrome%2Fandroid%2Fjava%2Fsrc%2Forg%2Fchromium%2Fchrome%2Fbrowser%2Fappmenu%2FAppMenu.java;h=af48e841b38dc3704eefbecf25eb420a497fb2ee;hb=4a1a0bdd01eef90b0826a0e761d3379d3715c10f;hp=15afde545fa98d5afa92256c8afc88361351fa28;hpb=b1be5ca53587d23e7aeb77b26861fdc0a181ffd8;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu.java b/src/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu.java index 15afde5..af48e84 100644 --- a/src/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu.java +++ b/src/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu.java @@ -88,9 +88,10 @@ public class AppMenu implements OnItemClickListener, OnKeyListener { * button) * @param screenRotation Current device screen rotation. * @param visibleDisplayFrame The display area rect in which AppMenu is supposed to fit in. + * @param screenHeight Current device screen height. */ void show(Context context, View anchorView, boolean isByHardwareButton, int screenRotation, - Rect visibleDisplayFrame) { + Rect visibleDisplayFrame, int screenHeight) { mPopup = new ListPopupWindow(context, null, android.R.attr.popupMenuStyle); mPopup.setModal(true); mPopup.setAnchorView(anchorView); @@ -147,7 +148,7 @@ public class AppMenu implements OnItemClickListener, OnKeyListener { this, menuItems, LayoutInflater.from(context), showMenuButton); mPopup.setAdapter(mAdapter); - setMenuHeight(menuItems.size(), visibleDisplayFrame); + setMenuHeight(menuItems.size(), visibleDisplayFrame, screenHeight); setPopupOffset(mPopup, mCurrentScreenRotation, visibleDisplayFrame); mPopup.setOnItemClickListener(this); mPopup.show(); @@ -273,7 +274,7 @@ public class AppMenu implements OnItemClickListener, OnKeyListener { return mPopup; } - private void setMenuHeight(int numMenuItems, Rect appDimensions) { + private void setMenuHeight(int numMenuItems, Rect appDimensions, int screenHeight) { assert mPopup.getAnchorView() != null; View anchorView = mPopup.getAnchorView(); int[] anchorViewLocation = new int[2]; @@ -281,6 +282,10 @@ public class AppMenu implements OnItemClickListener, OnKeyListener { anchorViewLocation[1] -= appDimensions.top; int anchorViewImpactHeight = mIsByHardwareButton ? anchorView.getHeight() : 0; + // Set appDimensions.height() for abnormal anchorViewLocation. + if (anchorViewLocation[1] > screenHeight) { + anchorViewLocation[1] = appDimensions.height(); + } int availableScreenSpace = Math.max(anchorViewLocation[1], appDimensions.height() - anchorViewLocation[1] - anchorViewImpactHeight);