From 84389571531e48962802a5f90206e326054a3d31 Mon Sep 17 00:00:00 2001 From: Chong Zhang Date: Wed, 13 Jan 2016 10:33:27 -0800 Subject: [PATCH] Fix rect convert from screen to surface coordinates with scaling When there is scaling, the top/left coordinates are also scaled. They could be non-zero if the app is being cropped (eg. due to two-finger scroll). bug: 26451625 Change-Id: I90d537347b312d2438993780f52b023c2332eb68 --- services/core/java/com/android/server/wm/WindowState.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index 058fa67a5e4a8..b09c12bad9f36 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -2284,10 +2284,12 @@ final class WindowState implements WindowManagerPolicy.WindowState { void transformFromScreenToSurfaceSpace(Rect rect) { if (mHScale >= 0) { - rect.right = rect.left + (int)((rect.right - rect.left) / mHScale); + rect.left = (int) (rect.left / mHScale); + rect.right = (int) (rect.right / mHScale); } if (mVScale >= 0) { - rect.bottom = rect.top + (int)((rect.bottom - rect.top) / mVScale); + rect.top = (int) (rect.top / mVScale); + rect.bottom = (int) (rect.bottom / mVScale); } }