diff options
| author | 2015-10-16 17:32:04 +0000 | |
|---|---|---|
| committer | 2015-10-16 17:32:04 +0000 | |
| commit | 9d24cbca0a0a0def3e6a40c7129dd6ab625ada46 (patch) | |
| tree | f1727a3c37f1ec197adb18ee0c15a3778dcb3b08 | |
| parent | 547c346bb34878b691fd53e54aa3a88efcc5dc6f (diff) | |
| parent | 955b2fc732382022959889e90694801c36b8a71a (diff) | |
Merge "Disable stack cropping for docked animating windows only."
3 files changed, 10 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index c4600e02dfb9..7c561800ed03 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -326,6 +326,10 @@ class Task implements DimLayer.DimLayerUser { return mStack != null && mStack.mStackId == FREEFORM_WORKSPACE_STACK_ID; } + boolean inDockedWorkspace() { + return mStack != null && mStack.mStackId == DOCKED_STACK_ID; + } + WindowState getTopAppMainWindow() { final int tokensCount = mAppTokens.size(); return tokensCount > 0 ? mAppTokens.get(tokensCount - 1).findMainWindow() : null; diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index e72d35c62e5e..7ea64f153061 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -1326,6 +1326,10 @@ final class WindowState implements WindowManagerPolicy.WindowState { } } + boolean inDockedWorkspace() { + return mAppToken != null && mAppToken.mTask != null && mAppToken.mTask.inDockedWorkspace(); + } + private class DeathRecipient implements IBinder.DeathRecipient { @Override public void binderDied() { diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java index 191360426e94..276d7cd0894e 100644 --- a/services/core/java/com/android/server/wm/WindowStateAnimator.java +++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java @@ -1401,9 +1401,8 @@ class WindowStateAnimator { clipRect.offset(attrs.surfaceInsets.left, attrs.surfaceInsets.top); // We don't want to clip to stack bounds windows that are currently doing entrance - // animation. This is necessary for docking operation, otherwise the window will be - // suddenly cut off. - if (!mAnimator.mAnimating) { + // animation for docked window, otherwise the animating window will be suddenly cut off. + if (!(mAnimator.mAnimating && w.inDockedWorkspace())) { adjustCropToStackBounds(w, clipRect); } |