summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2012-08-07 14:43:43 -0700
committerRomain Guy <romainguy@google.com>2012-08-07 14:43:43 -0700
commit2440e670de0294bdf64592849613db9b8f00ee11 (patch)
tree782b3d504904ae327f22688d43a8c743b78ba895
parent17112ad8a21a77620eb1ff14dcf8bdd6b7859712 (diff)
downloadframeworks_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.java2
-rw-r--r--core/java/android/view/ViewGroup.java15
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;