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

Commit ea8bf362 authored by Jorge Gil's avatar Jorge Gil
Browse files

Do not set a disallowedAreaForEndBounds in proto1 window decors

The disallowedAreaForEndBounds is meant to be used when another
component will handle a drag move end in that region (such as a
transition to fullscreen in desktop mode proto 2) and the positioner
does not need to finalize the bounds change with a WCT.
Proto 1 window decorations do not have another component handling
the task-moves within the status bar region, so the disallowed
area should not be set so that the positioner can finalize the bounds
correctly.

Bug: 281761492
Test: drag-move a task in freeform in proto1 into the status bar
area, release and confirm the task surface or caption is not stuck
behind the status bar.

Change-Id: Ie186cf7b2b875b8424d46b6ed661438f50e10b73
parent e95c5f05
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -820,8 +820,13 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
            @NonNull DesktopModeWindowDecoration windowDecoration,
            @NonNull RunningTaskInfo taskInfo) {
        final int screenWidth = mDisplayController.getDisplayLayout(taskInfo.displayId).width();
        final Rect disallowedAreaForEndBounds = new Rect(0, 0, screenWidth,
        final Rect disallowedAreaForEndBounds;
        if (DesktopModeStatus.isProto2Enabled()) {
            disallowedAreaForEndBounds = new Rect(0, 0, screenWidth,
                    getStatusBarHeight(taskInfo.displayId));
        } else {
            disallowedAreaForEndBounds = null;
        }
        if (!DesktopModeStatus.isVeiledResizeEnabled()) {
            return new FluidResizeTaskPositioner(mTaskOrganizer, windowDecoration,
                    mDisplayController, disallowedAreaForEndBounds, mDragStartListener,
+2 −2
Original line number Diff line number Diff line
@@ -55,7 +55,7 @@ public class VeiledResizeTaskPositioner implements DragPositioningCallback,
    private final Rect mRepositionTaskBounds = new Rect();
    // If a task move (not resize) finishes in this region, the positioner will not attempt to
    // finalize the bounds there using WCT#setBounds
    private final Rect mDisallowedAreaForEndBounds = new Rect();
    private final Rect mDisallowedAreaForEndBounds;
    private final Supplier<SurfaceControl.Transaction> mTransactionSupplier;
    private int mCtrlType;

@@ -77,7 +77,7 @@ public class VeiledResizeTaskPositioner implements DragPositioningCallback,
        mDesktopWindowDecoration = windowDecoration;
        mDisplayController = displayController;
        mDragStartListener = dragStartListener;
        mDisallowedAreaForEndBounds.set(disallowedAreaForEndBounds);
        mDisallowedAreaForEndBounds = new Rect(disallowedAreaForEndBounds);
        mTransactionSupplier = supplier;
        mTransitions = transitions;
    }