fix window layout problem in ViewRoot
* don't scale LayoutParams (this must be app's scale).
* scale the layout params' coordinates & size only when requesting layout.
In SurfaceView, window's x,y wasn't scaled before sending to window manager.
diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java
index 40b03c8..3d023f7 100644
--- a/core/java/android/view/SurfaceView.java
+++ b/core/java/android/view/SurfaceView.java
@@ -326,8 +326,9 @@
mFormat = mRequestedFormat;
mType = mRequestedType;
- mLayout.x = mLeft;
- mLayout.y = mTop;
+ // Scaling window's layout here beause mLayout is not used elsewhere.
+ mLayout.x = (int) (mLeft * mAppScale);
+ mLayout.y = (int) (mTop * mAppScale);
mLayout.width = (int) (getWidth() * mAppScale);
mLayout.height = (int) (getHeight() * mAppScale);
mLayout.format = mRequestedFormat;
@@ -380,7 +381,7 @@
synchronized (mCallbacks) {
callbacks = new SurfaceHolder.Callback[mCallbacks.size()];
mCallbacks.toArray(callbacks);
- }
+ }
if (visibleChanged) {
mIsCreating = true;