0

[Android] Account for status bar offset when position paste popup

The paste PopupMenu was getting clipped by the status bar when the insertion
handle was brought close to the status bar. Update the position of the PopupMenu
 using the height of the status bar.

BUG=397915

Review URL: https://codereview.chromium.org/421173002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287467 0039d316-1c4b-4281-b951-d872f2087c98
This commit is contained in:
kingshuk.j@samsung.com
2014-08-05 05:46:08 +00:00
parent e7d0d0f9eb
commit 4498b51a1f
2 changed files with 15 additions and 1 deletions
AUTHORS
content/public/android/java/src/org/chromium/content/browser/input

@ -225,6 +225,7 @@ Kevin Lee Helpingstine <sig11@reprehensible.net>
Kevin M. McCormick <mckev@amazon.com> Kevin M. McCormick <mckev@amazon.com>
Kihong Kwon <kihong.kwon@samsung.com> Kihong Kwon <kihong.kwon@samsung.com>
Kim Christensen <kimworking@gmail.com> Kim Christensen <kimworking@gmail.com>
Kingshuk Jana <kingshuk.j@samsung.com>
Klemen Forstnerič <klemen.forstneric@gmail.com> Klemen Forstnerič <klemen.forstneric@gmail.com>
Krzysztof Wolanski <k.wolanski@samsung.com> Krzysztof Wolanski <k.wolanski@samsung.com>
Kunal Thakar <kunalt@gmail.com> Kunal Thakar <kunalt@gmail.com>

@ -27,6 +27,7 @@ public class PastePopupMenu implements OnClickListener {
private int mRawPositionY; private int mRawPositionY;
private int mPositionX; private int mPositionX;
private int mPositionY; private int mPositionY;
private int mStatusBarHeight;
private final View[] mPasteViews; private final View[] mPasteViews;
private final int[] mPasteViewLayouts; private final int[] mPasteViewLayouts;
private final int mLineOffsetY; private final int mLineOffsetY;
@ -81,6 +82,13 @@ public class PastePopupMenu implements OnClickListener {
5.0f, mContext.getResources().getDisplayMetrics()); 5.0f, mContext.getResources().getDisplayMetrics());
mWidthOffsetX = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, mWidthOffsetX = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
30.0f, mContext.getResources().getDisplayMetrics()); 30.0f, mContext.getResources().getDisplayMetrics());
final int statusBarHeightResourceId =
mContext.getResources().getIdentifier("status_bar_height", "dimen", "android");
if (statusBarHeightResourceId > 0) {
mStatusBarHeight =
mContext.getResources().getDimensionPixelSize(statusBarHeightResourceId);
}
} }
/** /**
@ -131,8 +139,13 @@ public class PastePopupMenu implements OnClickListener {
coords[0] += mPositionX; coords[0] += mPositionX;
coords[1] += mPositionY; coords[1] += mPositionY;
int minOffsetY = 0;
if (mParent.getSystemUiVisibility() == View.SYSTEM_UI_FLAG_VISIBLE) {
minOffsetY = mStatusBarHeight;
}
final int screenWidth = mContext.getResources().getDisplayMetrics().widthPixels; final int screenWidth = mContext.getResources().getDisplayMetrics().widthPixels;
if (coords[1] < 0) { if (coords[1] < minOffsetY) {
updateContent(false); updateContent(false);
// Update dimensions from new view // Update dimensions from new view
contentView = mContainer.getContentView(); contentView = mContainer.getContentView();