summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Filip Gruszczynski <gruszczy@google.com> 2015-10-16 17:32:04 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2015-10-16 17:32:04 +0000
commit9d24cbca0a0a0def3e6a40c7129dd6ab625ada46 (patch)
treef1727a3c37f1ec197adb18ee0c15a3778dcb3b08
parent547c346bb34878b691fd53e54aa3a88efcc5dc6f (diff)
parent955b2fc732382022959889e90694801c36b8a71a (diff)
Merge "Disable stack cropping for docked animating windows only."
-rw-r--r--services/core/java/com/android/server/wm/Task.java4
-rw-r--r--services/core/java/com/android/server/wm/WindowState.java4
-rw-r--r--services/core/java/com/android/server/wm/WindowStateAnimator.java5
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);
}