1
0
forked from Clones/Controlify

✏️ Don't unfocus edit boxes when switching to keyboard/mouse mode

This commit is contained in:
isXander
2023-08-02 23:59:58 +01:00
parent 19cdf59666
commit dea2fe1f9d

View File

@ -15,6 +15,7 @@ import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.ComponentPath; import net.minecraft.client.gui.ComponentPath;
import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.components.AbstractWidget; 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.events.GuiEventListener;
import net.minecraft.client.gui.components.tabs.Tab; import net.minecraft.client.gui.components.tabs.Tab;
import net.minecraft.client.gui.components.tabs.TabNavigationBar; import net.minecraft.client.gui.components.tabs.TabNavigationBar;
@ -63,7 +64,14 @@ public class ScreenProcessor<T extends Screen> {
public void onInputModeChanged(InputMode mode) { public void onInputModeChanged(InputMode mode) {
switch (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 -> { case CONTROLLER, MIXED -> {
if (!Controlify.instance().virtualMouseHandler().isVirtualMouseEnabled()) { if (!Controlify.instance().virtualMouseHandler().isVirtualMouseEnabled()) {
setInitialFocus(); setInitialFocus();