diff --git a/app/src/main/java/emu/skyline/input/onscreen/OnScreenControllerView.kt b/app/src/main/java/emu/skyline/input/onscreen/OnScreenControllerView.kt index 3d398b95..102d5b8d 100644 --- a/app/src/main/java/emu/skyline/input/onscreen/OnScreenControllerView.kt +++ b/app/src/main/java/emu/skyline/input/onscreen/OnScreenControllerView.kt @@ -151,7 +151,11 @@ class OnScreenControllerView @JvmOverloads constructor(context : Context, attrs for (buttonPair in controls.buttonPairs) { if (buttonPair.contains(button)) { for (otherButton in buttonPair) { - if (otherButton != button && otherButton.config.enabled && otherButton.isTouched(event.getX(fingerId), event.getY(fingerId))) { + if (otherButton.partnerPointerId == -1 && + otherButton != button && + otherButton.config.enabled && + otherButton.isTouched(event.getX(fingerId), event.getY(fingerId)) + ) { otherButton.partnerPointerId = fingerId if (otherButton.onFingerDown(x, y)) onButtonStateChangedListener?.invoke(otherButton.buttonId, ButtonState.Pressed)