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

Commit ac1543cb authored by Mady Mellor's avatar Mady Mellor
Browse files

Fix surface crop being wrong after rotation

Test: manual - expand some bubbles, rotation, visit them, rotate back
             => the surface should always fit the expanded view and
                not be cut off
Bug: 278653202
Change-Id: If260b7cb3577d8e5dd68813d5b1087834b3c5b1f
parent ab363773
Loading
Loading
Loading
Loading
+6 −3
Original line number Original line Diff line number Diff line
@@ -493,11 +493,14 @@ public class TaskViewTaskController implements ShellTaskOrganizer.TaskListener {
                    .show(mTaskLeash);
                    .show(mTaskLeash);
            // Also reparent on finishTransaction since the finishTransaction will reparent back
            // Also reparent on finishTransaction since the finishTransaction will reparent back
            // to its "original" parent by default.
            // to its "original" parent by default.
            Rect boundsOnScreen = mTaskViewBase.getCurrentBoundsOnScreen();
            finishTransaction.reparent(mTaskLeash, mSurfaceControl)
            finishTransaction.reparent(mTaskLeash, mSurfaceControl)
                    .setPosition(mTaskLeash, 0, 0);
                    .setPosition(mTaskLeash, 0, 0)
            mTaskViewTransitions.updateBoundsState(this, mTaskViewBase.getCurrentBoundsOnScreen());
                    // TODO: maybe once b/280900002 is fixed this will be unnecessary
                    .setWindowCrop(mTaskLeash, boundsOnScreen.width(), boundsOnScreen.height());
            mTaskViewTransitions.updateBoundsState(this, boundsOnScreen);
            mTaskViewTransitions.updateVisibilityState(this, true /* visible */);
            mTaskViewTransitions.updateVisibilityState(this, true /* visible */);
            wct.setBounds(mTaskToken, mTaskViewBase.getCurrentBoundsOnScreen());
            wct.setBounds(mTaskToken, boundsOnScreen);
        } else {
        } else {
            // The surface has already been destroyed before the task has appeared,
            // The surface has already been destroyed before the task has appeared,
            // so go ahead and hide the task entirely
            // so go ahead and hide the task entirely