Merge "PopupWindow: Use DISPLAY_CLIP_VERTICAL/HORIZONTAL." into nyc-dev

This commit is contained in:
TreeHugger Robot
2016-06-24 22:43:30 +00:00
committed by Android (Google) Code Review

View File

@@ -1393,6 +1393,14 @@ public class PopupWindow {
}
}
private int computeGravity() {
int gravity = Gravity.START | Gravity.TOP;
if (mClipToScreen || mClippingEnabled) {
gravity |= Gravity.DISPLAY_CLIP_VERTICAL | Gravity.DISPLAY_CLIP_HORIZONTAL;
}
return gravity;
}
/**
* <p>Generate the layout parameters for the popup window.</p>
*
@@ -1407,7 +1415,7 @@ public class PopupWindow {
// screen. The view is then positioned to the appropriate location by
// setting the x and y offsets to match the anchor's bottom-left
// corner.
p.gravity = Gravity.START | Gravity.TOP;
p.gravity = computeGravity();
p.flags = computeFlags(p.flags);
p.type = mWindowLayoutType;
p.token = token;
@@ -1958,6 +1966,12 @@ public class PopupWindow {
update = true;
}
final int newGravity = computeGravity();
if (newGravity != p.gravity) {
p.gravity = newGravity;
update = true;
}
if (update) {
setLayoutDirectionFromAnchor();
mWindowManager.updateViewLayout(mDecorView, p);
@@ -2064,6 +2078,12 @@ public class PopupWindow {
update = true;
}
final int newGravity = computeGravity();
if (newGravity != p.gravity) {
p.gravity = newGravity;
update = true;
}
int newAccessibilityIdOfAnchor =
(mAnchor != null) ? mAnchor.get().getAccessibilityViewId() : -1;
if (newAccessibilityIdOfAnchor != p.accessibilityIdOfAnchor) {