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

Commit 4c5aa517 authored by Wale Ogunwale's avatar Wale Ogunwale
Browse files

Don't crop windows not on defualt display to stack bounds.

There are some windows that live on other displays while there app
and main window live on the default display (e.g. casting...). We
don't want to crop this windows to the stack bounds which is only
currently supported on the default display.

Bug: 26782253
Change-Id: I45648cc6fe8729e35f5b28eb06207aac6c263cdf
parent 2f87f1d1
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -2382,6 +2382,9 @@ final class WindowState implements WindowManagerPolicy.WindowState {
                if (stack != null) {
                    pw.print(" stackId="); pw.print(stack.mStackId);
                }
                if (mNotOnAppsDisplay) {
                    pw.print(" mNotOnAppsDisplay="); pw.print(mNotOnAppsDisplay);
                }
                pw.print(" mSession="); pw.print(mSession);
                pw.print(" mClient="); pw.println(mClient.asBinder());
        pw.print(prefix); pw.print("mOwnerUid="); pw.print(mOwnerUid);
+11 −0
Original line number Diff line number Diff line
@@ -1290,6 +1290,17 @@ class WindowStateAnimator {
    }
    private void adjustCropToStackBounds(WindowState w, Rect clipRect, Rect finalClipRect,
            boolean isFreeformResizing) {

        final DisplayContent displayContent = w.getDisplayContent();
        if (displayContent != null && !displayContent.isDefaultDisplay) {
            // There are some windows that live on other displays while their app and main window
            // live on the default display (e.g. casting...). We don't want to crop this windows
            // to the stack bounds which is only currently supported on the default display.
            // TODO(multi-display): Need to support cropping to stack bounds on other displays
            // when we have stacks on other displays.
            return;
        }

        final Task task = w.getTask();
        if (task == null || !task.cropWindowsToStackBounds()) {
            return;