diff options
Diffstat (limited to 'services/core/java/com/android/server/wm/WindowStateAnimator.java')
-rw-r--r-- | services/core/java/com/android/server/wm/WindowStateAnimator.java | 9 |
1 files changed, 8 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 d6726c1..cdd9503 100644 --- a/services/core/java/com/android/server/wm/WindowStateAnimator.java +++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java @@ -1218,6 +1218,10 @@ class WindowStateAnimator { mDtDx = 0; mDsDy = 0; mDtDy = mWin.mGlobalScale; + if (appTransformation == null) { + mHasClipRect = false; + mClipRect.setEmpty(); + } } } @@ -1301,7 +1305,10 @@ class WindowStateAnimator { clipRect.bottom += attrs.surfaceInsets.bottom; // If we have an animated clip rect, intersect it with the clip rect. - if (mHasClipRect) { + // However, the clip rect animation effect should be applied on app windows that inset + // decor only. If applying on non-inset decor one, the top region of this window will + // be clipped on the end of animation, e.g. dialog activities. + if (mHasClipRect && (w.mAttrs.flags & LayoutParams.FLAG_LAYOUT_INSET_DECOR) != 0) { // NOTE: We are adding a temporary workaround due to the status bar // not always reporting the correct system decor rect. In such // cases, we take into account the specified content insets as well. |