summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/widget/StackView.java5
-rw-r--r--graphics/java/android/graphics/Canvas.java11
2 files changed, 13 insertions, 3 deletions
diff --git a/core/java/android/widget/StackView.java b/core/java/android/widget/StackView.java
index 1b9055ce33ab..6cc86b9b871c 100644
--- a/core/java/android/widget/StackView.java
+++ b/core/java/android/widget/StackView.java
@@ -28,7 +28,6 @@ import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
-import android.graphics.Region;
import android.graphics.TableMaskFilter;
import android.os.Bundle;
import android.util.AttributeSet;
@@ -550,8 +549,8 @@ public class StackView extends AdapterViewAnimator {
// We only expand the clip bounds if necessary.
if (expandClipRegion) {
- canvas.save(Canvas.CLIP_SAVE_FLAG);
- canvas.clipRect(stackInvalidateRect, Region.Op.UNION);
+ canvas.save();
+ canvas.clipRectUnion(stackInvalidateRect);
super.dispatchDraw(canvas);
canvas.restore();
} else {
diff --git a/graphics/java/android/graphics/Canvas.java b/graphics/java/android/graphics/Canvas.java
index 3cc92bcb6956..a465eeafa287 100644
--- a/graphics/java/android/graphics/Canvas.java
+++ b/graphics/java/android/graphics/Canvas.java
@@ -829,6 +829,17 @@ public class Canvas extends BaseCanvas {
}
/**
+ * DON'T USE THIS METHOD. It exists only to support a particular legacy behavior in
+ * the view system and will be removed as soon as that code is refactored to no longer
+ * depend on this behavior.
+ * @hide
+ */
+ public boolean clipRectUnion(@NonNull Rect rect) {
+ return nClipRect(mNativeCanvasWrapper, rect.left, rect.top, rect.right, rect.bottom,
+ Region.Op.UNION.nativeInt);
+ }
+
+ /**
* Intersect the current clip with the specified rectangle, which is
* expressed in local coordinates.
*