From dea2fe1f9dcf9378ad75b748b740437e6447f2aa Mon Sep 17 00:00:00 2001 From: isXander Date: Wed, 2 Aug 2023 23:59:58 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=8F=EF=B8=8F=20Don't=20unfocus=20edit=20b?= =?UTF-8?q?oxes=20when=20switching=20to=20keyboard/mouse=20mode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../isxander/controlify/screenop/ScreenProcessor.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/dev/isxander/controlify/screenop/ScreenProcessor.java b/src/main/java/dev/isxander/controlify/screenop/ScreenProcessor.java index 1da1f15..e8aaa13 100644 --- a/src/main/java/dev/isxander/controlify/screenop/ScreenProcessor.java +++ b/src/main/java/dev/isxander/controlify/screenop/ScreenProcessor.java @@ -15,6 +15,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.ComponentPath; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.AbstractWidget; +import net.minecraft.client.gui.components.EditBox; import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.components.tabs.Tab; import net.minecraft.client.gui.components.tabs.TabNavigationBar; @@ -63,7 +64,14 @@ public class ScreenProcessor { public void onInputModeChanged(InputMode mode) { switch (mode) { - case KEYBOARD_MOUSE -> ((ScreenAccessor) screen).invokeClearFocus(); + case KEYBOARD_MOUSE -> { + boolean focusingEditBox = getFocusTree().stream() + .anyMatch(component -> component instanceof EditBox); + + if (!focusingEditBox) { + ((ScreenAccessor) screen).invokeClearFocus(); + } + } case CONTROLLER, MIXED -> { if (!Controlify.instance().virtualMouseHandler().isVirtualMouseEnabled()) { setInitialFocus();