diff options
author | Romain Guy <romainguy@google.com> | 2012-08-07 14:43:43 -0700 |
---|---|---|
committer | Romain Guy <romainguy@google.com> | 2012-08-07 14:43:43 -0700 |
commit | 2440e670de0294bdf64592849613db9b8f00ee11 (patch) | |
tree | 782b3d504904ae327f22688d43a8c743b78ba895 | |
parent | 17112ad8a21a77620eb1ff14dcf8bdd6b7859712 (diff) | |
download | frameworks_base-2440e670de0294bdf64592849613db9b8f00ee11.zip frameworks_base-2440e670de0294bdf64592849613db9b8f00ee11.tar.gz frameworks_base-2440e670de0294bdf64592849613db9b8f00ee11.tar.bz2 |
Catch padding changes in ViewGroup to properly clip children
Bug #6886339
RTL support introduced a new way to handle padding which broke
existing behavior in ViewGroup.setPadding(). The new code path
was not notifying ViewGroup which would prevent it from setting
a flag used to clip children.
Change-Id: I584143714cb81fd664b4ecd9fb51d56bae04ba05
-rw-r--r-- | core/java/android/view/View.java | 2 | ||||
-rw-r--r-- | core/java/android/view/ViewGroup.java | 15 |
2 files changed, 11 insertions, 6 deletions
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index cd35002..78e8309 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -14107,7 +14107,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, internalSetPadding(left, top, right, bottom); } - private void internalSetPadding(int left, int top, int right, int bottom) { + void internalSetPadding(int left, int top, int right, int bottom) { mUserPaddingLeft = left; mUserPaddingRight = right; mUserPaddingBottom = bottom; diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java index 95eed33..1548743 100644 --- a/core/java/android/view/ViewGroup.java +++ b/core/java/android/view/ViewGroup.java @@ -170,6 +170,14 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager * This field should be made private, so it is hidden from the SDK. * {@hide} */ + @ViewDebug.ExportedProperty(flagMapping = { + @ViewDebug.FlagToString(mask = FLAG_CLIP_CHILDREN, equals = FLAG_CLIP_CHILDREN, + name = "CLIP_CHILDREN"), + @ViewDebug.FlagToString(mask = FLAG_CLIP_TO_PADDING, equals = FLAG_CLIP_TO_PADDING, + name = "CLIP_TO_PADDING"), + @ViewDebug.FlagToString(mask = FLAG_PADDING_NOT_NULL, equals = FLAG_PADDING_NOT_NULL, + name = "PADDING_NOT_NULL") + }) protected int mGroupFlags; /* @@ -2509,12 +2517,9 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager super.dispatchDetachedFromWindow(); } - /** - * {@inheritDoc} - */ @Override - public void setPadding(int left, int top, int right, int bottom) { - super.setPadding(left, top, right, bottom); + void internalSetPadding(int left, int top, int right, int bottom) { + super.internalSetPadding(left, top, right, bottom); if ((mPaddingLeft | mPaddingTop | mPaddingRight | mPaddingBottom) != 0) { mGroupFlags |= FLAG_PADDING_NOT_NULL; |