Loading core/java/android/view/WindowManagerPolicy.java +6 −0 Original line number Original line Diff line number Diff line Loading @@ -405,6 +405,12 @@ public interface WindowManagerPolicy { * not attached to any stack. * not attached to any stack. */ */ int getStackId(); int getStackId(); /** * Returns true if the window is current in multi-windowing mode. i.e. it shares the * screen with other application windows. */ public boolean inMultiWindowMode(); } } /** /** Loading services/core/java/com/android/server/policy/PhoneWindowManager.java +3 −1 Original line number Original line Diff line number Diff line Loading @@ -4635,7 +4635,9 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } // TYPE_SYSTEM_ERROR is above the NavigationBar so it can't be allowed to extend over it. // TYPE_SYSTEM_ERROR is above the NavigationBar so it can't be allowed to extend over it. if ((fl & FLAG_LAYOUT_NO_LIMITS) != 0 && attrs.type != TYPE_SYSTEM_ERROR) { // Also, we don't allow windows in multi-window mode to extend out of the screen. if ((fl & FLAG_LAYOUT_NO_LIMITS) != 0 && attrs.type != TYPE_SYSTEM_ERROR && !win.inMultiWindowMode()) { df.left = df.top = -10000; df.left = df.top = -10000; df.right = df.bottom = 10000; df.right = df.bottom = 10000; if (attrs.type != TYPE_WALLPAPER) { if (attrs.type != TYPE_WALLPAPER) { Loading services/core/java/com/android/server/wm/WindowState.java +9 −4 Original line number Original line Diff line number Diff line Loading @@ -642,7 +642,7 @@ final class WindowState implements WindowManagerPolicy.WindowState { mHaveFrame = true; mHaveFrame = true; final Task task = getTask(); final Task task = getTask(); final boolean fullscreenTask = task == null || task.isFullscreen(); final boolean fullscreenTask = !inMultiWindowMode(); final boolean windowsAreFloating = task != null && task.isFloating(); final boolean windowsAreFloating = task != null && task.isFloating(); if (fullscreenTask || (isChildWindow() if (fullscreenTask || (isChildWindow() Loading Loading @@ -2215,6 +2215,12 @@ final class WindowState implements WindowManagerPolicy.WindowState { return task != null && task.inFreeformWorkspace(); return task != null && task.inFreeformWorkspace(); } } @Override public boolean inMultiWindowMode() { final Task task = getTask(); return task != null && !task.isFullscreen(); } boolean isDragResizeChanged() { boolean isDragResizeChanged() { return mDragResizing != computeDragResizing(); return mDragResizing != computeDragResizing(); } } Loading Loading @@ -2506,9 +2512,8 @@ final class WindowState implements WindowManagerPolicy.WindowState { final int pw = mContainingFrame.width(); final int pw = mContainingFrame.width(); final int ph = mContainingFrame.height(); final int ph = mContainingFrame.height(); final Task task = getTask(); final Task task = getTask(); final boolean nonFullscreenTask = task != null && !task.isFullscreen(); final boolean nonFullscreenTask = inMultiWindowMode(); final boolean fitToDisplay = task != null && final boolean fitToDisplay = task != null && !task.isFloating(); !task.isFloating(); float x, y; float x, y; int w,h; int w,h; Loading Loading
core/java/android/view/WindowManagerPolicy.java +6 −0 Original line number Original line Diff line number Diff line Loading @@ -405,6 +405,12 @@ public interface WindowManagerPolicy { * not attached to any stack. * not attached to any stack. */ */ int getStackId(); int getStackId(); /** * Returns true if the window is current in multi-windowing mode. i.e. it shares the * screen with other application windows. */ public boolean inMultiWindowMode(); } } /** /** Loading
services/core/java/com/android/server/policy/PhoneWindowManager.java +3 −1 Original line number Original line Diff line number Diff line Loading @@ -4635,7 +4635,9 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } // TYPE_SYSTEM_ERROR is above the NavigationBar so it can't be allowed to extend over it. // TYPE_SYSTEM_ERROR is above the NavigationBar so it can't be allowed to extend over it. if ((fl & FLAG_LAYOUT_NO_LIMITS) != 0 && attrs.type != TYPE_SYSTEM_ERROR) { // Also, we don't allow windows in multi-window mode to extend out of the screen. if ((fl & FLAG_LAYOUT_NO_LIMITS) != 0 && attrs.type != TYPE_SYSTEM_ERROR && !win.inMultiWindowMode()) { df.left = df.top = -10000; df.left = df.top = -10000; df.right = df.bottom = 10000; df.right = df.bottom = 10000; if (attrs.type != TYPE_WALLPAPER) { if (attrs.type != TYPE_WALLPAPER) { Loading
services/core/java/com/android/server/wm/WindowState.java +9 −4 Original line number Original line Diff line number Diff line Loading @@ -642,7 +642,7 @@ final class WindowState implements WindowManagerPolicy.WindowState { mHaveFrame = true; mHaveFrame = true; final Task task = getTask(); final Task task = getTask(); final boolean fullscreenTask = task == null || task.isFullscreen(); final boolean fullscreenTask = !inMultiWindowMode(); final boolean windowsAreFloating = task != null && task.isFloating(); final boolean windowsAreFloating = task != null && task.isFloating(); if (fullscreenTask || (isChildWindow() if (fullscreenTask || (isChildWindow() Loading Loading @@ -2215,6 +2215,12 @@ final class WindowState implements WindowManagerPolicy.WindowState { return task != null && task.inFreeformWorkspace(); return task != null && task.inFreeformWorkspace(); } } @Override public boolean inMultiWindowMode() { final Task task = getTask(); return task != null && !task.isFullscreen(); } boolean isDragResizeChanged() { boolean isDragResizeChanged() { return mDragResizing != computeDragResizing(); return mDragResizing != computeDragResizing(); } } Loading Loading @@ -2506,9 +2512,8 @@ final class WindowState implements WindowManagerPolicy.WindowState { final int pw = mContainingFrame.width(); final int pw = mContainingFrame.width(); final int ph = mContainingFrame.height(); final int ph = mContainingFrame.height(); final Task task = getTask(); final Task task = getTask(); final boolean nonFullscreenTask = task != null && !task.isFullscreen(); final boolean nonFullscreenTask = inMultiWindowMode(); final boolean fitToDisplay = task != null && final boolean fitToDisplay = task != null && !task.isFloating(); !task.isFloating(); float x, y; float x, y; int w,h; int w,h; Loading