Loading services/core/java/com/android/server/wm/DisplayContent.java +1 −0 Original line number Diff line number Diff line Loading @@ -238,6 +238,7 @@ class DisplayContent { final TaskStack stack = win.getStack(); if (win.isVisibleLw() && stack != null && stack != focusedStack) { mTmpRect.set(win.mVisibleFrame); // If no intersection, we need mTmpRect to be unmodified. mTmpRect.intersect(win.mVisibleInsets); mTouchExcludeRegion.op(mTmpRect, Region.Op.DIFFERENCE); } Loading services/core/java/com/android/server/wm/TaskStack.java +5 −1 Original line number Diff line number Diff line Loading @@ -144,7 +144,11 @@ public class TaskStack { bounds = mTmpRect; mFullscreen = true; } else { bounds.intersect(mTmpRect); // ensure bounds are entirely within the display rect // ensure bounds are entirely within the display rect if (!bounds.intersect(mTmpRect)) { // Can't set bounds outside the containing display.. Sorry! return false; } mFullscreen = mTmpRect.equals(bounds); } } Loading services/core/java/com/android/server/wm/WindowManagerService.java +10 −3 Original line number Diff line number Diff line Loading @@ -6233,7 +6233,10 @@ public class WindowManagerService extends IWindowManager.Stub int bottom = wf.bottom - cr.bottom; frame.union(left, top, right, bottom); ws.getStackBounds(stackBounds); frame.intersect(stackBounds); if (!frame.intersect(stackBounds)) { // Set frame empty if there's no intersection. frame.setEmpty(); } } if (ws.mAppToken != null && ws.mAppToken.token == appToken && Loading Loading @@ -6280,12 +6283,16 @@ public class WindowManagerService extends IWindowManager.Stub if (!includeFullDisplay) { // Constrain frame to the screen size. frame.intersect(0, 0, dw, dh); if (!frame.intersect(0, 0, dw, dh)) { frame.setEmpty(); } } else { // Caller just wants entire display. frame.set(0, 0, dw, dh); } if (frame.isEmpty()) { return null; } if (width < 0) { width = frame.width(); Loading services/core/java/com/android/server/wm/WindowState.java +3 −1 Original line number Diff line number Diff line Loading @@ -547,7 +547,9 @@ final class WindowState implements WindowManagerPolicy.WindowState { } // Make sure the containing frame is within the content frame so we don't layout // resized window under screen decorations. mContainingFrame.intersect(cf); if (!mContainingFrame.intersect(cf)) { mContainingFrame.set(cf); } mDisplayFrame.set(mContainingFrame); } else { mContainingFrame.set(pf); Loading Loading
services/core/java/com/android/server/wm/DisplayContent.java +1 −0 Original line number Diff line number Diff line Loading @@ -238,6 +238,7 @@ class DisplayContent { final TaskStack stack = win.getStack(); if (win.isVisibleLw() && stack != null && stack != focusedStack) { mTmpRect.set(win.mVisibleFrame); // If no intersection, we need mTmpRect to be unmodified. mTmpRect.intersect(win.mVisibleInsets); mTouchExcludeRegion.op(mTmpRect, Region.Op.DIFFERENCE); } Loading
services/core/java/com/android/server/wm/TaskStack.java +5 −1 Original line number Diff line number Diff line Loading @@ -144,7 +144,11 @@ public class TaskStack { bounds = mTmpRect; mFullscreen = true; } else { bounds.intersect(mTmpRect); // ensure bounds are entirely within the display rect // ensure bounds are entirely within the display rect if (!bounds.intersect(mTmpRect)) { // Can't set bounds outside the containing display.. Sorry! return false; } mFullscreen = mTmpRect.equals(bounds); } } Loading
services/core/java/com/android/server/wm/WindowManagerService.java +10 −3 Original line number Diff line number Diff line Loading @@ -6233,7 +6233,10 @@ public class WindowManagerService extends IWindowManager.Stub int bottom = wf.bottom - cr.bottom; frame.union(left, top, right, bottom); ws.getStackBounds(stackBounds); frame.intersect(stackBounds); if (!frame.intersect(stackBounds)) { // Set frame empty if there's no intersection. frame.setEmpty(); } } if (ws.mAppToken != null && ws.mAppToken.token == appToken && Loading Loading @@ -6280,12 +6283,16 @@ public class WindowManagerService extends IWindowManager.Stub if (!includeFullDisplay) { // Constrain frame to the screen size. frame.intersect(0, 0, dw, dh); if (!frame.intersect(0, 0, dw, dh)) { frame.setEmpty(); } } else { // Caller just wants entire display. frame.set(0, 0, dw, dh); } if (frame.isEmpty()) { return null; } if (width < 0) { width = frame.width(); Loading
services/core/java/com/android/server/wm/WindowState.java +3 −1 Original line number Diff line number Diff line Loading @@ -547,7 +547,9 @@ final class WindowState implements WindowManagerPolicy.WindowState { } // Make sure the containing frame is within the content frame so we don't layout // resized window under screen decorations. mContainingFrame.intersect(cf); if (!mContainingFrame.intersect(cf)) { mContainingFrame.set(cf); } mDisplayFrame.set(mContainingFrame); } else { mContainingFrame.set(pf); Loading