Fix clipRect transform rounding errors
For clipRect.right and clipRect.bottom, we need to round them up.
Bug: 28864193
Change-Id: I2bd30eec8a8093e0fdcc7ce8484a0610fd068792
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index ff95afc..08bfa2d 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -2732,14 +2732,14 @@
return mStringNameCache;
}
- void transformFromScreenToSurfaceSpace(Rect rect) {
+ void transformClipRectFromScreenToSurfaceSpace(Rect clipRect) {
if (mHScale >= 0) {
- rect.left = (int) (rect.left / mHScale);
- rect.right = (int) (rect.right / mHScale);
+ clipRect.left = (int) (clipRect.left / mHScale);
+ clipRect.right = (int) Math.ceil(clipRect.right / mHScale);
}
if (mVScale >= 0) {
- rect.top = (int) (rect.top / mVScale);
- rect.bottom = (int) (rect.bottom / mVScale);
+ clipRect.top = (int) (clipRect.top / mVScale);
+ clipRect.bottom = (int) Math.ceil(clipRect.bottom / mVScale);
}
}