diff options
author | Android (Google) Code Review <android-gerrit@google.com> | 2009-07-22 11:49:20 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2009-07-22 11:49:20 -0700 |
commit | 59c25cbaf0dd690e503b881392510127441d9074 (patch) | |
tree | 19e987e04470665d57e755e3eba983542967d14f /graphics | |
parent | 7228d0fdd7fd151f033b09044a9ba94b2bc06b74 (diff) | |
parent | 5140141c2637b89ad0d86c3b715459a1e7b92729 (diff) | |
download | frameworks_base-59c25cbaf0dd690e503b881392510127441d9074.zip frameworks_base-59c25cbaf0dd690e503b881392510127441d9074.tar.gz frameworks_base-59c25cbaf0dd690e503b881392510127441d9074.tar.bz2 |
Merge change 8218 into donut
* changes:
DrawableContainer was not respecting the value returned by Drawable.getPadding(Rect).
Diffstat (limited to 'graphics')
-rw-r--r-- | graphics/java/android/graphics/drawable/DrawableContainer.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/graphics/java/android/graphics/drawable/DrawableContainer.java b/graphics/java/android/graphics/drawable/DrawableContainer.java index 376b1df..dc80cf5 100644 --- a/graphics/java/android/graphics/drawable/DrawableContainer.java +++ b/graphics/java/android/graphics/drawable/DrawableContainer.java @@ -272,6 +272,8 @@ public class DrawableContainer extends Drawable implements Drawable.Callback { boolean mCheckedConstantState; boolean mCanConstantState; + boolean mPaddingChecked = false; + DrawableContainerState(DrawableContainerState orig, DrawableContainer owner) { mOwner = owner; @@ -334,6 +336,7 @@ public class DrawableContainer extends Drawable implements Drawable.Callback { mHaveStateful = false; mConstantPadding = null; + mPaddingChecked = false; mComputedConstantSize = false; return pos; @@ -359,23 +362,25 @@ public class DrawableContainer extends Drawable implements Drawable.Callback { if (mVariablePadding) { return null; } - if (mConstantPadding != null) { + if (mConstantPadding != null || mPaddingChecked) { return mConstantPadding; } - final Rect r = new Rect(0, 0, 0, 0); + Rect r = null; final Rect t = new Rect(); final int N = getChildCount(); final Drawable[] drawables = mDrawables; for (int i = 0; i < N; i++) { if (drawables[i].getPadding(t)) { + if (r == null) r = new Rect(0, 0, 0, 0); if (t.left > r.left) r.left = t.left; if (t.top > r.top) r.top = t.top; if (t.right > r.right) r.right = t.right; if (t.bottom > r.bottom) r.bottom = t.bottom; } } - return (mConstantPadding=r); + mPaddingChecked = true; + return (mConstantPadding = r); } public final void setConstantSize(boolean constant) { |