summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chong Zhang <chz@google.com> 2016-02-12 15:34:10 -0800
committer Chong Zhang <chz@google.com> 2016-02-12 23:55:47 +0000
commit5471e90ef97d92a94d6a0ca99f4ffc1e77a4b55a (patch)
treea7118e0d4ed5888daef75bb080e294332b3985cd
parentdc414fa479d7e0df21bf64b43448c14e7d6ea50d (diff)
Clearing mDestroying flag when app is made visible again
If not cleared window will remain invisible and can't receive inputs, which coud lead to ANR. Also continue looking for windows to be destroyed instead of stopping on first one that's not removed by client. bug: 27123118 Change-Id: I27048779886c69eb6e7ad5e21210be511416d8b6
-rw-r--r--services/core/java/com/android/server/wm/AppWindowToken.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/AppWindowToken.java b/services/core/java/com/android/server/wm/AppWindowToken.java
index 93b1d6297a0c..56ae8e0a4968 100644
--- a/services/core/java/com/android/server/wm/AppWindowToken.java
+++ b/services/core/java/com/android/server/wm/AppWindowToken.java
@@ -310,6 +310,11 @@ class AppWindowToken extends WindowToken {
if (!(win.mRemoveOnExit && win.mExiting)) {
win.mExiting = exiting;
}
+ // If we're no longer exiting, remove the window from destroying list
+ if (!win.mExiting && win.mDestroying) {
+ win.mDestroying = false;
+ service.mDestroySurface.remove(win);
+ }
}
}
@@ -326,7 +331,7 @@ class AppWindowToken extends WindowToken {
}
if (!mAppStopped && !win.mClientRemoveRequested) {
- return;
+ continue;
}
win.destroyOrSaveSurface();