From ee028d502e331765546e4f58d541c552b4ddc789 Mon Sep 17 00:00:00 2001 From: Michael Kolb Date: Wed, 4 Jun 2014 09:08:16 -0700 Subject: [PATCH] DO NOT MERGE : Fix measuring with outset for orientation Bug: 14992865 Change-Id: Ie133d8010a394403e52512f4012632389bc32c4a --- .../com/android/internal/policy/impl/PhoneWindow.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindow.java b/policy/src/com/android/internal/policy/impl/PhoneWindow.java index c670b5c38d534..610f6cfc126e0 100644 --- a/policy/src/com/android/internal/policy/impl/PhoneWindow.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindow.java @@ -2259,7 +2259,6 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { final DisplayMetrics metrics = getContext().getResources().getDisplayMetrics(); final boolean isPortrait = metrics.widthPixels < metrics.heightPixels; - final int widthMode = getMode(widthMeasureSpec); final int heightMode = getMode(heightMeasureSpec); @@ -2306,11 +2305,17 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { if (mOutsetBottom != null) { int mode = MeasureSpec.getMode(heightMeasureSpec); - if (mode != MeasureSpec.UNSPECIFIED) { + if (mode != MeasureSpec.UNSPECIFIED && !isPortrait) { int outset = (int) mOutsetBottom.getDimension(metrics); int height = MeasureSpec.getSize(heightMeasureSpec); heightMeasureSpec = MeasureSpec.makeMeasureSpec(height + outset, mode); } + mode = MeasureSpec.getMode(widthMeasureSpec); + if (mode != MeasureSpec.UNSPECIFIED && isPortrait) { + int outset = (int) mOutsetBottom.getDimension(metrics); + int width = MeasureSpec.getSize(widthMeasureSpec); + widthMeasureSpec = MeasureSpec.makeMeasureSpec(width + outset, mode); + } } super.onMeasure(widthMeasureSpec, heightMeasureSpec);