summaryrefslogtreecommitdiffstats
path: root/services/java/com/android/server/wm/WindowManagerService.java
diff options
context:
space:
mode:
authorCraig Mautner <cmautner@google.com>2013-04-24 14:53:51 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-04-24 14:53:51 +0000
commita2e56c5a2fb909befa0d58ec30ce7e628ffff82a (patch)
treec9f51a02e3201d44f3c082384429e6b9e8bd19d6 /services/java/com/android/server/wm/WindowManagerService.java
parentc56b831a1f6f044451df69aafaea1b37c780a360 (diff)
parent858d8a6583b0c91c66960167b84c67b6c4e2d3c6 (diff)
downloadframeworks_base-a2e56c5a2fb909befa0d58ec30ce7e628ffff82a.zip
frameworks_base-a2e56c5a2fb909befa0d58ec30ce7e628ffff82a.tar.gz
frameworks_base-a2e56c5a2fb909befa0d58ec30ce7e628ffff82a.tar.bz2
Merge "Fix user switching."
Diffstat (limited to 'services/java/com/android/server/wm/WindowManagerService.java')
-rw-r--r--services/java/com/android/server/wm/WindowManagerService.java14
1 files changed, 4 insertions, 10 deletions
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java
index 5a9d63a..cb4333f 100644
--- a/services/java/com/android/server/wm/WindowManagerService.java
+++ b/services/java/com/android/server/wm/WindowManagerService.java
@@ -5094,22 +5094,16 @@ public class WindowManagerService extends IWindowManager.Stub
public void setCurrentUser(final int newUserId) {
synchronized (mWindowMap) {
+ int oldUserId = mCurrentUserId;
mCurrentUserId = newUserId;
mPolicy.setCurrentUserLw(newUserId);
// Hide windows that should not be seen by the new user.
DisplayContentsIterator iterator = new DisplayContentsIterator();
while (iterator.hasNext()) {
- final WindowList windows = iterator.next().getWindowList();
- for (int i = 0; i < windows.size(); i++) {
- final WindowState win = windows.get(i);
- if (win.isHiddenFromUserLocked()) {
- Slog.w(TAG, "current user violation " + newUserId + " hiding "
- + win + ", attrs=" + win.mAttrs.type + ", belonging to "
- + win.mOwnerUid);
- win.hideLw(false);
- }
- }
+ DisplayContent displayContent = iterator.next();
+ displayContent.switchUserStacks(oldUserId, newUserId);
+ rebuildAppWindowListLocked(displayContent);
}
performLayoutAndPlaceSurfacesLocked();
}