summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Robert Horvath <robhor@google.com> 2022-02-23 19:06:34 +0100
committer Robert Horvath <robhor@google.com> 2022-03-02 11:20:33 +0100
commit9a7444cec53a51bfc374cef430d39d4dfdd2c784 (patch)
treeda9b78f73e555ba16c7050d2f1d9219218b32e45
parentb57bb862965d0cc36451ba994e1ed446a3f93812 (diff)
Keep custom keep-clear Rects if preferKeepClear is set
Since ViewParents can be set to not clip their children, custom keep clear areas can extend beyond the bounds of its hosting View. If preferKeepClear is set, add the View's bounds as a keep clear area, but also keep the custom Rects. Bug: 221073574 Test: atest KeepClearRectsTests Change-Id: I85a4e4a223fbba787c5afebf2689a031243808d4
-rw-r--r--core/java/android/view/View.java11
1 files changed, 6 insertions, 5 deletions
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 8b3a29a7aa6f..b49e075cb710 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -11807,8 +11807,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
* <p>
* The system will try to respect this preference, but when not possible will ignore it.
* <p>
- * Note: while this is set to {@code true}, the system will ignore the {@code Rect}s provided
- * through {@link #setPreferKeepClearRects} (but not clear them).
+ * Note: This is independent from {@link #setPreferKeepClearRects}. If both are set, both will
+ * be taken into account.
* <p>
* @see #setPreferKeepClearRects
* @see #isPreferKeepClear
@@ -11842,8 +11842,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
* <p>
* The system will try to respect this preference, but when not possible will ignore it.
* <p>
- * Note: While {@link #isPreferKeepClear} is {@code true}, the {@code Rect}s set here are
- * ignored.
+ * Note: This is independent from {@link #setPreferKeepClear}. If both are set, both will be
+ * taken into account.
* <p>
* @see #setPreferKeepClear
* @see #getPreferKeepClearRects
@@ -11939,7 +11939,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
final List<Rect> list = new ArrayList();
if (info.mPreferKeepClear) {
list.add(new Rect(0, 0, getWidth(), getHeight()));
- } else if (info.mKeepClearRects != null) {
+ }
+ if (info.mKeepClearRects != null) {
list.addAll(info.mKeepClearRects);
}
return list;