From 655ca8f89bba584eb39f2aecdd0b12add90fa2ae Mon Sep 17 00:00:00 2001 From: lynxnb Date: Mon, 3 Apr 2023 13:26:23 +0200 Subject: [PATCH] Ignore OSC roll-over events if the button is already pressed --- .../emu/skyline/input/onscreen/OnScreenControllerView.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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)