Fixes #1963217. Increases the invalidate region in compatibility mode.
To account for rounding errors when scaling the invalidate regions, increase
the dirty rectangle by 1 pixel in each direction
diff --git a/core/java/android/view/ViewRoot.java b/core/java/android/view/ViewRoot.java
index 65457c5..6f6e224 100644
--- a/core/java/android/view/ViewRoot.java
+++ b/core/java/android/view/ViewRoot.java
@@ -546,13 +546,16 @@
if (DEBUG_DRAW) Log.v(TAG, "Invalidate child: " + dirty);
if (mCurScrollY != 0 || mTranslator != null) {
mTempRect.set(dirty);
+ dirty = mTempRect;
if (mCurScrollY != 0) {
- mTempRect.offset(0, -mCurScrollY);
+ dirty.offset(0, -mCurScrollY);
}
if (mTranslator != null) {
- mTranslator.translateRectInAppWindowToScreen(mTempRect);
+ mTranslator.translateRectInAppWindowToScreen(dirty);
}
- dirty = mTempRect;
+ if (mAttachInfo.mScalingRequired) {
+ dirty.inset(-1, -1);
+ }
}
mDirty.union(dirty);
if (!mWillDrawSoon) {