From ba4332d9cf09b7e342783e39efd41646792a5b06 Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Thu, 25 Jun 2015 13:00:03 -0700 Subject: [PATCH] Constrain ListPopupWindow hint width spec to >= 0 Bug: 22092169 Change-Id: Ia05302cf8d167aae26eccbf53dd3fd21d09b326d --- core/java/android/widget/ListPopupWindow.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/core/java/android/widget/ListPopupWindow.java b/core/java/android/widget/ListPopupWindow.java index 534bfad94e91..c6de5dde82d5 100644 --- a/core/java/android/widget/ListPopupWindow.java +++ b/core/java/android/widget/ListPopupWindow.java @@ -1127,10 +1127,19 @@ public class ListPopupWindow { break; } - // measure the hint's height to find how much more vertical space - // we need to add to the drop down's height - int widthSpec = MeasureSpec.makeMeasureSpec(mDropDownWidth, MeasureSpec.AT_MOST); - int heightSpec = MeasureSpec.UNSPECIFIED; + // Measure the hint's height to find how much more vertical + // space we need to add to the drop down's height. + final int widthSize; + final int widthMode; + if (mDropDownWidth >= 0) { + widthMode = MeasureSpec.AT_MOST; + widthSize = mDropDownWidth; + } else { + widthMode = MeasureSpec.UNSPECIFIED; + widthSize = 0; + } + final int widthSpec = MeasureSpec.makeMeasureSpec(widthSize, widthMode); + final int heightSpec = MeasureSpec.UNSPECIFIED; hintView.measure(widthSpec, heightSpec); hintParams = (LinearLayout.LayoutParams) hintView.getLayoutParams(); -- 2.11.0