Cap minimum visibilty of floating windows by the real size.

Without the cap, say, a 40dp window cannot snap to the left edge,
and one CTS is failing due to this in freeform mode.

BUG=30037893
TEST=run cts --class android.widget.cts.PopupWindowTest \
      --method testUpdateDimensionAndAlignAnchorViewWithOffsets

Change-Id: I474ca4ce519bba39d3e16ec8620b1176a3c52834
This commit is contained in:
Kazuhiro Inaba
2016-07-14 13:02:55 +09:00
parent 5ba81e88ad
commit 63e24d1791

View File

@@ -821,10 +821,10 @@ final class WindowState implements WindowManagerPolicy.WindowState {
final int height = Math.min(mFrame.height(), mContentFrame.height());
final int width = Math.min(mContentFrame.width(), mFrame.width());
final DisplayMetrics displayMetrics = getDisplayContent().getDisplayMetrics();
final int minVisibleHeight = WindowManagerService.dipToPixel(
MINIMUM_VISIBLE_HEIGHT_IN_DP, displayMetrics);
final int minVisibleWidth = WindowManagerService.dipToPixel(
MINIMUM_VISIBLE_WIDTH_IN_DP, displayMetrics);
final int minVisibleHeight = Math.min(height, WindowManagerService.dipToPixel(
MINIMUM_VISIBLE_HEIGHT_IN_DP, displayMetrics));
final int minVisibleWidth = Math.min(width, WindowManagerService.dipToPixel(
MINIMUM_VISIBLE_WIDTH_IN_DP, displayMetrics));
final int top = Math.max(mContentFrame.top,
Math.min(mFrame.top, mContentFrame.bottom - minVisibleHeight));
final int left = Math.max(mContentFrame.left + minVisibleWidth - width,