From 6e194302f5e8a5c253ef4d10df2cd61349c76c47 Mon Sep 17 00:00:00 2001 From: Mathias-Boulay Date: Fri, 19 May 2023 00:39:08 +0200 Subject: [PATCH] Fix[controls]: incorrect activated overlay on rounded controls --- .../pojavlaunch/customcontrols/buttons/ControlButton.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/buttons/ControlButton.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/buttons/ControlButton.java index abfd6cb7d..8ee81a853 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/buttons/ControlButton.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/buttons/ControlButton.java @@ -31,6 +31,9 @@ public class ControlButton extends TextView implements ControlInterface { protected ControlData mProperties; private final ControlLayout mControlLayout; + /* Cache value from the ControlData radius for drawing purposes */ + private float mComputedRadius; + protected boolean mIsToggled = false; protected boolean mIsPointerOutOfBounds = false; @@ -61,6 +64,7 @@ public class ControlButton extends TextView implements ControlInterface { public void setProperties(ControlData properties, boolean changePos) { mProperties = properties; ControlInterface.super.setProperties(properties, changePos); + mComputedRadius = ControlInterface.super.computeCornerRadius(mProperties.cornerRadius); if (mProperties.isToggle) { //For the toggle layer @@ -85,7 +89,7 @@ public class ControlButton extends TextView implements ControlInterface { protected void onDraw(Canvas canvas) { super.onDraw(canvas); if (mIsToggled || (!mProperties.isToggle && isActivated())) - canvas.drawRoundRect(0, 0, getWidth(), getHeight(), mProperties.cornerRadius, mProperties.cornerRadius, mRectPaint); + canvas.drawRoundRect(0, 0, getWidth(), getHeight(), mComputedRadius, mComputedRadius, mRectPaint); }