summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorRobert Carr <racarr@google.com>2015-09-25 14:56:38 -0700
committerRob Carr <racarr@google.com>2015-10-15 00:53:35 +0000
commit38451b824723095967d36445e9be029bf73d4226 (patch)
treeb1afcd6beea642acad0eb7052528c19a92c6672e /services
parent8630e18a297801238efcba8760e8d850d8920a80 (diff)
downloadframeworks_base-38451b824723095967d36445e9be029bf73d4226.zip
frameworks_base-38451b824723095967d36445e9be029bf73d4226.tar.gz
frameworks_base-38451b824723095967d36445e9be029bf73d4226.tar.bz2
WindowStateAnimation: Clear transformation clip rect.
Ensure the clip rect taken from transformations is cleared when there is no transformation. Normally the failure to clear the clip would not cause a problem, as the final clip would be equal to the window size. However, in the event that the window scale goes on to change (WindowState::m(H/V)Scale that is) the clip will now be specified at the inappropriate scale (notice the way the clip must be divided by H/VScale as SurfaceFlinger will apply the surface transform to the clip). Bug:24298694 Change-Id: I4548e8ecea8d66d4942e99823653a7b05f87cea0 (cherry picked from commit 2f0fe62c5426533ccdf9ec7ef28027c367286979)
Diffstat (limited to 'services')
-rw-r--r--services/core/java/com/android/server/wm/WindowStateAnimator.java3
1 files changed, 2 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java
index 726d29d..42042b9 100644
--- a/services/core/java/com/android/server/wm/WindowStateAnimator.java
+++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java
@@ -1064,6 +1064,8 @@ class WindowStateAnimator {
mAnimator.getScreenRotationAnimationLocked(displayId);
final boolean screenAnimation =
screenRotationAnimation != null && screenRotationAnimation.isAnimating();
+
+ mHasClipRect = false;
if (selfTransformation || attachedTransformation != null
|| appTransformation != null || screenAnimation) {
// cache often used attributes locally
@@ -1139,7 +1141,6 @@ class WindowStateAnimator {
// transforming since it is more important to have that
// animation be smooth.
mShownAlpha = mAlpha;
- mHasClipRect = false;
if (!mService.mLimitedAlphaCompositing
|| (!PixelFormat.formatHasAlpha(mWin.mAttrs.format)
|| (mWin.isIdentityMatrix(mDsDx, mDtDx, mDsDy, mDtDy)