From 4b16969b006613bff4901a6e979f29a0f501430b Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Thu, 29 Nov 2012 17:51:24 -0800 Subject: [PATCH] Don't apply transformation fudge when not rotating. There is this stupid fudge factor applied to window transformations when doing a screen rotation animation. We need this when rotating, but when not rotating it causes very visible artifacts. Historically the non-rotation case only happened due to configuration changes, so wasn't that big a deal. Now however that we use this when switching users, it is more annoying. So get rid of it for such cases. Change-Id: I6b343866c1bad9b16984b4a629917c2f1bb37b9e --- .../java/com/android/server/wm/ScreenRotationAnimation.java | 4 ++++ services/java/com/android/server/wm/WindowStateAnimator.java | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/services/java/com/android/server/wm/ScreenRotationAnimation.java b/services/java/com/android/server/wm/ScreenRotationAnimation.java index 8d2e2e8c6b237..cfcf8413e0bea 100644 --- a/services/java/com/android/server/wm/ScreenRotationAnimation.java +++ b/services/java/com/android/server/wm/ScreenRotationAnimation.java @@ -668,6 +668,10 @@ class ScreenRotationAnimation { return hasAnimations() || (TWO_PHASE_ANIMATION && mFinishAnimReady); } + public boolean isRotating() { + return mCurRotation != mOriginalRotation; + } + private boolean hasAnimations() { return (TWO_PHASE_ANIMATION && (mStartEnterAnimation != null || mStartExitAnimation != null diff --git a/services/java/com/android/server/wm/WindowStateAnimator.java b/services/java/com/android/server/wm/WindowStateAnimator.java index e33b7b79a4361..d7fcc67995224 100644 --- a/services/java/com/android/server/wm/WindowStateAnimator.java +++ b/services/java/com/android/server/wm/WindowStateAnimator.java @@ -876,7 +876,7 @@ class WindowStateAnimator { final Matrix tmpMatrix = mWin.mTmpMatrix; // Compute the desired transformation. - if (screenAnimation) { + if (screenAnimation && screenRotationAnimation.isRotating()) { // If we are doing a screen animation, the global rotation // applied to windows can result in windows that are carefully // aligned with each other to slightly separate, allowing you