summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Winson Chung <winsonc@google.com> 2014-09-30 15:04:02 -0700
committer Winson Chung <winsonc@google.com> 2014-09-30 22:21:26 +0000
commitc11b19caef12c3199393b68ae36931a603337c05 (patch)
treefb4f776601888cf026ddfbc9475761b91d460e68
parent51a400eb440c89fb06a47371bb7b026f00edb09c (diff)
Fixing an issue with leaking starting windows. (Bug 17657878)
In some cases, when starting an animation while another starting window is visible, the starting window is never scheduled to be removed. In that case, we try and schedule the closing app starting window to be removed when we are starting the transition to a new activity. This also partially addresses issues related to leaking windows in b/17381033. Change-Id: Id26525cd71380852f109ec2f55a4a60db5086ded
-rw-r--r--services/core/java/com/android/server/wm/WindowManagerService.java5
1 files changed, 5 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index 999649b02e68..c956d8099b1e 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -9093,6 +9093,11 @@ public class WindowManagerService extends IWindowManager.Stub
// gotten drawn.
wtoken.allDrawn = true;
wtoken.deferClearAllDrawn = false;
+ // Ensure that apps that are mid-starting are also scheduled to have their
+ // starting windows removed after the animation is complete
+ if (wtoken.startingWindow != null && !wtoken.startingWindow.mExiting) {
+ scheduleRemoveStartingWindow(wtoken);
+ }
if (animLp != null) {
int layer = -1;