From 9a5d77894c72972bf90a13002ef7c9967c2b5da5 Mon Sep 17 00:00:00 2001 From: tingna_sung Date: Fri, 16 Jan 2015 11:27:12 +0800 Subject: Don't apply animation clip to dialog activities If launching a dialog activity from Recents app UI, the top region of this dialog will be clipped. This is caused by applying clip rect animation effect for Recents app scale up/down transition. However, the clip rect animation is not needed for non-inset decor app window, e.g. dialog activity. https://code.google.com/p/android/issues/detail?id=161362 Bug: 20652683 Bug: 19523205 Change-Id: Ida8c3b28b3789061d6ebb662bc08738d7daec3a0 --- .../core/java/com/android/server/wm/WindowStateAnimator.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'services/core/java/com/android/server/wm') 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. -- cgit v1.1