final long origId = Binder.clearCallingIdentity();
synchronized(mWindowMap) {
+ DisplayContent displayContent = null;
WindowToken wtoken = mTokenMap.remove(token);
if (wtoken != null) {
boolean delayed = false;
for (int i=0; i<N; i++) {
WindowState win = wtoken.windows.get(i);
+ displayContent = win.getDisplayContent();
if (win.mWinAnimator.isAnimating()) {
delayed = true;
WindowManagerPolicy.TRANSIT_EXIT);
}
changed = true;
- win.setDisplayLayoutNeeded();
+ if (displayContent != null) {
+ displayContent.layoutNeeded = true;
+ }
}
}
c.mAttachedHidden = false;
if (c.mWinAnimator.mSurfaceControl != null) {
c.mWinAnimator.performShowLocked();
- // It hadn't been shown, which means layout not performed on it, so now we
- // want to make sure to do a layout. If called from within the transaction
- // loop, this will cause it to restart with a new layout.
- c.setDisplayLayoutNeeded();
+ // It hadn't been shown, which means layout not
+ // performed on it, so now we want to make sure to
+ // do a layout. If called from within the transaction
+ // loop, this will cause it to restart with a new
+ // layout.
+ final DisplayContent displayContent = c.getDisplayContent();
+ if (displayContent != null) {
+ displayContent.layoutNeeded = true;
+ }
}
}
}