summaryrefslogtreecommitdiffstats
path: root/graphics
diff options
context:
space:
mode:
authorAndroid (Google) Code Review <android-gerrit@google.com>2009-07-22 11:49:20 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2009-07-22 11:49:20 -0700
commit59c25cbaf0dd690e503b881392510127441d9074 (patch)
tree19e987e04470665d57e755e3eba983542967d14f /graphics
parent7228d0fdd7fd151f033b09044a9ba94b2bc06b74 (diff)
parent5140141c2637b89ad0d86c3b715459a1e7b92729 (diff)
downloadframeworks_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.java11
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) {