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

Commit ad69fa4c authored by Tony's avatar Tony
Browse files

Round popup corner clipping rotation center

Before, it was possible for the rotation to occur around
a slightly off-center pivot on certain devices when the
display setting was set to "small."

Bug: 62049689
Change-Id: I5f2f557a1170cc98c0a83b87749526a4d7ea73f1
parent d74633cb
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -100,22 +100,24 @@ public abstract class PopupItemView extends FrameLayout {
        // Clip children to this item's rounded corners.
        int cornerWidth = mRoundedCornerBitmap.getWidth();
        int cornerHeight = mRoundedCornerBitmap.getHeight();
        int cornerCenterX = Math.round(cornerWidth / 2f);
        int cornerCenterY = Math.round(cornerHeight / 2f);
        if ((mRoundedCorners & ROUNDED_TOP_CORNERS) != 0) {
            // Clip top left corner.
            mMatrix.reset();
            canvas.drawBitmap(mRoundedCornerBitmap, mMatrix, mBackgroundClipPaint);
            // Clip top right corner.
            mMatrix.setRotate(90, cornerWidth / 2, cornerHeight / 2);
            mMatrix.setRotate(90, cornerCenterX, cornerCenterY);
            mMatrix.postTranslate(canvas.getWidth() - cornerWidth, 0);
            canvas.drawBitmap(mRoundedCornerBitmap, mMatrix, mBackgroundClipPaint);
        }
        if ((mRoundedCorners & ROUNDED_BOTTOM_CORNERS) != 0) {
            // Clip bottom right corner.
            mMatrix.setRotate(180, cornerWidth / 2, cornerHeight / 2);
            mMatrix.setRotate(180, cornerCenterX, cornerCenterY);
            mMatrix.postTranslate(canvas.getWidth() - cornerWidth, canvas.getHeight() - cornerHeight);
            canvas.drawBitmap(mRoundedCornerBitmap, mMatrix, mBackgroundClipPaint);
            // Clip bottom left corner.
            mMatrix.setRotate(270, cornerWidth / 2, cornerHeight / 2);
            mMatrix.setRotate(270, cornerCenterX, cornerCenterY);
            mMatrix.postTranslate(0, canvas.getHeight() - cornerHeight);
            canvas.drawBitmap(mRoundedCornerBitmap, mMatrix, mBackgroundClipPaint);
        }