diff --git a/app/src/main/java/com/limelight/binding/input/virtual_controller/AnalogStick.java b/app/src/main/java/com/limelight/binding/input/virtual_controller/AnalogStick.java index 2403ae0e..c5b95774 100644 --- a/app/src/main/java/com/limelight/binding/input/virtual_controller/AnalogStick.java +++ b/app/src/main/java/com/limelight/binding/input/virtual_controller/AnalogStick.java @@ -338,6 +338,16 @@ public class AnalogStick extends VirtualControllerElement { } else { stick_state = STICK_STATE.NO_MOVEMENT; notifyOnRevoke(); + + // HACK: We can sometimes generate back-to-back controller events + // that cause GFE to drop newer data. Dropping zeroing events would + // be disastrous because we may not get a follow-up joystick event to + // correct the dropped zeroing packet. Delay 5 ms when raising the + // analog stick to ensure this doesn't happen. + try { + Thread.sleep(5); + } catch (InterruptedException e) {} + // not longer pressed reset analog stick notifyOnMovement(0, 0); } diff --git a/moonlight-common b/moonlight-common index 4f5ce68e..1af5c24e 160000 --- a/moonlight-common +++ b/moonlight-common @@ -1 +1 @@ -Subproject commit 4f5ce68e8ce2e6e814fa5e7c66cabd4602929993 +Subproject commit 1af5c24e56e3d0b4cae477346306075129b8ddf8