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);
         }
     }
 
diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java
index 9dae0f2..22621ef 100644
--- a/services/core/java/com/android/server/wm/WindowStateAnimator.java
+++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java
@@ -1282,7 +1282,7 @@
         if (DEBUG_WINDOW_CROP) Slog.d(TAG,
                 "win=" + w + " Clip rect after stack adjustment=" + clipRect);
 
-        w.transformFromScreenToSurfaceSpace(clipRect);
+        w.transformClipRectFromScreenToSurfaceSpace(clipRect);
 
         // See {@link WindowState#notifyMovedInStack} for why this is necessary.
         if (w.hasJustMovedInStack() && mLastClipRect.isEmpty() && !clipRect.isEmpty()) {