Don't process windows belonging to unshown users

Add a test for whether a window will be shown to the current user.
Otherwise we wait to process windows that are drawn but will never
be shown. Consequently we end up in a layout loop that continues
to set pendingLayoutChanges at the point where "wallpaper and
commitFinishDrawingLocked true" message is generated.

Fixes bug 18510914.

Change-Id: Ib067b41b5f26b146ee6bdb16c2f3b07d20aa2c54
This commit is contained in:
Craig Mautner
2014-12-02 16:47:29 -08:00
parent 92ad4dd017
commit 6ee618509a

View File

@@ -9764,7 +9764,7 @@ public class WindowManagerService extends IWindowManager.Stub
w.mContentChanged = false;
// Moved from updateWindowsAndWallpaperLocked().
if (w.mHasSurface) {
if (w.mHasSurface && !w.isHiddenFromUserLocked()) {
// Take care of the window being ready to display.
final boolean committed =
winAnimator.commitFinishDrawingLocked(currentTime);