Loading services/core/java/com/android/server/wm/DisplayContent.java +4 −5 Original line number Diff line number Diff line Loading @@ -244,20 +244,19 @@ class DisplayContent { mTapDetector.setTouchExcludeRegion(mTouchExcludeRegion); } void switchUserStacks(int newUserId) { void switchUserStacks() { final WindowList windows = getWindowList(); for (int i = 0; i < windows.size(); i++) { final WindowState win = windows.get(i); if (win.isHiddenFromUserLocked()) { if (DEBUG_VISIBILITY) Slog.w(TAG, "user changing " + newUserId + " hiding " + win + ", attrs=" + win.mAttrs.type + ", belonging to " + win.mOwnerUid); if (DEBUG_VISIBILITY) Slog.w(TAG, "user changing, hiding " + win + ", attrs=" + win.mAttrs.type + ", belonging to " + win.mOwnerUid); win.hideLw(false); } } for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) { mStacks.get(stackNdx).switchUser(newUserId); mStacks.get(stackNdx).switchUser(); } } Loading services/core/java/com/android/server/wm/TaskStack.java +12 −6 Original line number Diff line number Diff line Loading @@ -463,18 +463,24 @@ public class TaskStack { void startDimmingIfNeeded(WindowStateAnimator newWinAnimator) { // Only set dim params on the highest dimmed layer. final WindowStateAnimator existingDimWinAnimator = mDimWinAnimator; // Don't turn on for an unshown surface, or for any layer but the highest dimmed layer. if (newWinAnimator.mSurfaceShown && (existingDimWinAnimator == null || !existingDimWinAnimator.mSurfaceShown || existingDimWinAnimator.mAnimLayer < newWinAnimator.mAnimLayer)) { if (newWinAnimator.mSurfaceShown && (mDimWinAnimator == null || !mDimWinAnimator.mSurfaceShown || mDimWinAnimator.mAnimLayer < newWinAnimator.mAnimLayer)) { mDimWinAnimator = newWinAnimator; if (mDimWinAnimator.mWin.mAppToken == null && !mFullscreen && mDisplayContent != null) { // Dim should cover the entire screen for system windows. mDisplayContent.getLogicalDisplayRect(mTmpRect); mDimLayer.setBounds(mTmpRect); } } } void stopDimmingIfNeeded() { if (!mDimmingTag && isDimming()) { mDimWinAnimator = null; mDimLayer.setBounds(mBounds); } } Loading @@ -489,7 +495,7 @@ public class TaskStack { } } void switchUser(int userId) { void switchUser() { int top = mTasks.size(); for (int taskNdx = 0; taskNdx < top; ++taskNdx) { Task task = mTasks.get(taskNdx); Loading Loading @@ -518,7 +524,7 @@ public class TaskStack { } if (mDimLayer.isDimming()) { pw.print(prefix); pw.println("mDimLayer:"); mDimLayer.printTo(prefix, pw); mDimLayer.printTo(prefix + " ", pw); pw.print(prefix); pw.print("mDimWinAnimator="); pw.println(mDimWinAnimator); } if (!mExitingAppTokens.isEmpty()) { Loading services/core/java/com/android/server/wm/WindowManagerService.java +1 −1 Original line number Diff line number Diff line Loading @@ -5489,7 +5489,7 @@ public class WindowManagerService extends IWindowManager.Stub final int numDisplays = mDisplayContents.size(); for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) { final DisplayContent displayContent = mDisplayContents.valueAt(displayNdx); displayContent.switchUserStacks(newUserId); displayContent.switchUserStacks(); rebuildAppWindowListLocked(displayContent); } performLayoutAndPlaceSurfacesLocked(); Loading Loading
services/core/java/com/android/server/wm/DisplayContent.java +4 −5 Original line number Diff line number Diff line Loading @@ -244,20 +244,19 @@ class DisplayContent { mTapDetector.setTouchExcludeRegion(mTouchExcludeRegion); } void switchUserStacks(int newUserId) { void switchUserStacks() { final WindowList windows = getWindowList(); for (int i = 0; i < windows.size(); i++) { final WindowState win = windows.get(i); if (win.isHiddenFromUserLocked()) { if (DEBUG_VISIBILITY) Slog.w(TAG, "user changing " + newUserId + " hiding " + win + ", attrs=" + win.mAttrs.type + ", belonging to " + win.mOwnerUid); if (DEBUG_VISIBILITY) Slog.w(TAG, "user changing, hiding " + win + ", attrs=" + win.mAttrs.type + ", belonging to " + win.mOwnerUid); win.hideLw(false); } } for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) { mStacks.get(stackNdx).switchUser(newUserId); mStacks.get(stackNdx).switchUser(); } } Loading
services/core/java/com/android/server/wm/TaskStack.java +12 −6 Original line number Diff line number Diff line Loading @@ -463,18 +463,24 @@ public class TaskStack { void startDimmingIfNeeded(WindowStateAnimator newWinAnimator) { // Only set dim params on the highest dimmed layer. final WindowStateAnimator existingDimWinAnimator = mDimWinAnimator; // Don't turn on for an unshown surface, or for any layer but the highest dimmed layer. if (newWinAnimator.mSurfaceShown && (existingDimWinAnimator == null || !existingDimWinAnimator.mSurfaceShown || existingDimWinAnimator.mAnimLayer < newWinAnimator.mAnimLayer)) { if (newWinAnimator.mSurfaceShown && (mDimWinAnimator == null || !mDimWinAnimator.mSurfaceShown || mDimWinAnimator.mAnimLayer < newWinAnimator.mAnimLayer)) { mDimWinAnimator = newWinAnimator; if (mDimWinAnimator.mWin.mAppToken == null && !mFullscreen && mDisplayContent != null) { // Dim should cover the entire screen for system windows. mDisplayContent.getLogicalDisplayRect(mTmpRect); mDimLayer.setBounds(mTmpRect); } } } void stopDimmingIfNeeded() { if (!mDimmingTag && isDimming()) { mDimWinAnimator = null; mDimLayer.setBounds(mBounds); } } Loading @@ -489,7 +495,7 @@ public class TaskStack { } } void switchUser(int userId) { void switchUser() { int top = mTasks.size(); for (int taskNdx = 0; taskNdx < top; ++taskNdx) { Task task = mTasks.get(taskNdx); Loading Loading @@ -518,7 +524,7 @@ public class TaskStack { } if (mDimLayer.isDimming()) { pw.print(prefix); pw.println("mDimLayer:"); mDimLayer.printTo(prefix, pw); mDimLayer.printTo(prefix + " ", pw); pw.print(prefix); pw.print("mDimWinAnimator="); pw.println(mDimWinAnimator); } if (!mExitingAppTokens.isEmpty()) { Loading
services/core/java/com/android/server/wm/WindowManagerService.java +1 −1 Original line number Diff line number Diff line Loading @@ -5489,7 +5489,7 @@ public class WindowManagerService extends IWindowManager.Stub final int numDisplays = mDisplayContents.size(); for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) { final DisplayContent displayContent = mDisplayContents.valueAt(displayNdx); displayContent.switchUserStacks(newUserId); displayContent.switchUserStacks(); rebuildAppWindowListLocked(displayContent); } performLayoutAndPlaceSurfacesLocked(); Loading