From f1975159c6467abecfbf69dfb97cfd13880ea439 Mon Sep 17 00:00:00 2001 From: isXander Date: Sun, 4 Jun 2023 12:09:14 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix=20natives=20onboarding=20get?= =?UTF-8?q?ting=20stuck=20on=20first=20launch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/dev/isxander/controlify/Controlify.java | 5 +++-- .../isxander/controlify/gui/screen/SDLOnboardingScreen.java | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/dev/isxander/controlify/Controlify.java b/src/main/java/dev/isxander/controlify/Controlify.java index 3978e43..f1c4e3c 100644 --- a/src/main/java/dev/isxander/controlify/Controlify.java +++ b/src/main/java/dev/isxander/controlify/Controlify.java @@ -119,8 +119,9 @@ public class Controlify implements ControlifyApi { nativeOnboardingFuture = new CompletableFuture<>(); + Screen parent = minecraft.screen; minecraft.setScreen(new SDLOnboardingScreen( - () -> minecraft.screen, + () -> parent, answer -> { if (answer) SDL2NativesManager.initialise(); @@ -211,7 +212,7 @@ public class Controlify implements ControlifyApi { public void tick(Minecraft client) { if (minecraft.getOverlay() == null) { - if (!calibrationQueue.isEmpty()) { + if (!calibrationQueue.isEmpty() && !(minecraft.screen instanceof SDLOnboardingScreen)) { Screen screen = minecraft.screen; while (!calibrationQueue.isEmpty()) { screen = new ControllerDeadzoneCalibrationScreen(calibrationQueue.poll(), screen); diff --git a/src/main/java/dev/isxander/controlify/gui/screen/SDLOnboardingScreen.java b/src/main/java/dev/isxander/controlify/gui/screen/SDLOnboardingScreen.java index 51d33ed..1800fba 100644 --- a/src/main/java/dev/isxander/controlify/gui/screen/SDLOnboardingScreen.java +++ b/src/main/java/dev/isxander/controlify/gui/screen/SDLOnboardingScreen.java @@ -18,8 +18,8 @@ public class SDLOnboardingScreen extends ConfirmScreen { Controlify.instance().config().globalSettings().loadVibrationNatives = yes; Controlify.instance().config().globalSettings().vibrationOnboarded = true; Controlify.instance().config().save(); - onAnswered.accept(yes); Minecraft.getInstance().setScreen(lastScreen.get()); + onAnswered.accept(yes); }, Component.translatable("controlify.sdl2_onboarding.title").withStyle(ChatFormatting.BOLD), Util.make(() -> {