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
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
index 6a55ffc..b7857e1 100644
--- a/services/core/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -9764,7 +9764,7 @@
                     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);