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(() -> {