Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 69bb0fb5 authored by Wale Ogunwale's avatar Wale Ogunwale Committed by android-build-merger
Browse files

Merge "Disable FLAG_LAYOUT_NO_LIMITS window flag in multi-window mode" into nyc-dev am: 7c74ae04

am: 99079b4f

* commit '99079b4f':
  Disable FLAG_LAYOUT_NO_LIMITS window flag in multi-window mode
parents 62a87368 99079b4f
Loading
Loading
Loading
Loading
+6 −0
Original line number Original line Diff line number Diff line
@@ -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();
    }
    }


    /**
    /**
+3 −1
Original line number Original line Diff line number Diff line
@@ -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) {
+9 −4
Original line number Original line Diff line number Diff line
@@ -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()
@@ -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();
    }
    }
@@ -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;