From 4945e5e6989dd7c1159ae32c0ae3b11f0f09f3ee Mon Sep 17 00:00:00 2001 From: isXander Date: Sun, 14 May 2023 22:53:54 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix=20hidden=20mouse=20hovering?= =?UTF-8?q?=20buttons=20in=20some=20cases?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controlify/mixins/core/MouseHandlerMixin.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/java/dev/isxander/controlify/mixins/core/MouseHandlerMixin.java b/src/main/java/dev/isxander/controlify/mixins/core/MouseHandlerMixin.java index e284ec3..a99d09a 100644 --- a/src/main/java/dev/isxander/controlify/mixins/core/MouseHandlerMixin.java +++ b/src/main/java/dev/isxander/controlify/mixins/core/MouseHandlerMixin.java @@ -2,6 +2,7 @@ package dev.isxander.controlify.mixins.core; import dev.isxander.controlify.Controlify; import dev.isxander.controlify.InputMode; +import dev.isxander.controlify.api.ControlifyApi; import net.minecraft.client.Minecraft; import net.minecraft.client.MouseHandler; import org.spongepowered.asm.mixin.Final; @@ -35,4 +36,14 @@ public class MouseHandlerMixin { if (window == minecraft.getWindow().getWindow()) Controlify.instance().setInputMode(InputMode.KEYBOARD_MOUSE); } + + /** + * Without this, mouse is left in the center of the screen that conflicts with controller focus. + */ + @Inject(method = "releaseMouse", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/platform/InputConstants;grabOrReleaseMouse(JIDD)V")) + private void moveMouseIfNecessary(CallbackInfo ci) { + if (ControlifyApi.get().currentInputMode() == InputMode.CONTROLLER) { + Controlify.instance().hideMouse(true, true); + } + } }