Merge "Don't wait for finishing animation when second display is disconnected"

This commit is contained in:
Craig Mautner
2014-03-25 17:01:27 +00:00
committed by Gerrit Code Review

View File

@@ -2373,6 +2373,11 @@ public class WindowManagerService extends IWindowManager.Stub
}
public void removeWindowLocked(Session session, WindowState win) {
removeWindowLocked(session, win, false);
}
private void removeWindowLocked(Session session, WindowState win,
boolean forceRemove) {
if (win.mAttrs.type == TYPE_APPLICATION_STARTING) {
if (DEBUG_STARTING_WINDOW) Slog.d(TAG, "Starting window removed " + win);
removeStartingWindowTimeout(win.mAppToken);
@@ -2423,7 +2428,7 @@ public class WindowManagerService extends IWindowManager.Stub
mDisplayMagnifier.onWindowTransitionLocked(win, transit);
}
}
if (win.mExiting || win.mWinAnimator.isAnimating()) {
if (!forceRemove && (win.mExiting || win.mWinAnimator.isAnimating())) {
// The exit animation is running... wait for it!
//Slog.i(TAG, "*** Running exit animation...");
win.mExiting = true;
@@ -10852,7 +10857,7 @@ public class WindowManagerService extends IWindowManager.Stub
WindowList windows = displayContent.getWindowList();
while (!windows.isEmpty()) {
final WindowState win = windows.get(windows.size() - 1);
removeWindowLocked(win.mSession, win);
removeWindowLocked(win.mSession, win, true);
}
}
mAnimator.removeDisplayLocked(displayId);