From c8a76e6928e544a4a5be13ede6157913db047d19 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Mon, 14 Sep 2020 13:35:02 +0200 Subject: [PATCH] Android: Fix touch pointer not working after activity recreation The only place where initTouchPointer was called automatically was Host_RequestRenderWindowSize, which is called at least once after emulation start, but not after activity recreation. --- .../dolphinemu/dolphinemu/overlay/InputOverlay.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.java index ea1a6ecb54..f4878168ca 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.java @@ -123,7 +123,17 @@ public final class InputOverlay extends SurfaceView implements OnTouchListener defaultOverlay(); // Load the controls. - refreshControls(); + if (NativeLibrary.IsRunning()) + { + // We would've needed a refreshControls call here in addition to the initTouchPointer call + // if it wasn't for initTouchPointer calling refreshControls. + initTouchPointer(); + } + else + { + // We can't call initTouchPointer yet because it needs the aspect ratio of the running game. + refreshControls(); + } // Set the on touch listener. setOnTouchListener(this);