diff options
| author | shedaniel <daniel@shedaniel.me> | 2022-12-02 00:06:47 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2022-12-02 00:07:12 +0800 |
| commit | 2caa595aa94d46ddaefc5ecdb79f7ec834f7eae8 (patch) | |
| tree | bff26cfa51f47f57dce3f5708572997b73e9745d /runtime/src/main/java | |
| parent | e0070afe923df8ed28ebdc2f3d60e0ab2746e32f (diff) | |
| download | RoughlyEnoughItems-2caa595aa94d46ddaefc5ecdb79f7ec834f7eae8.tar.gz RoughlyEnoughItems-2caa595aa94d46ddaefc5ecdb79f7ec834f7eae8.tar.bz2 RoughlyEnoughItems-2caa595aa94d46ddaefc5ecdb79f7ec834f7eae8.zip | |
Check EditBox focused before short-circuiting
Diffstat (limited to 'runtime/src/main/java')
| -rw-r--r-- | runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java index 0c1b9f5cf..16558a54e 100644 --- a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java +++ b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java @@ -90,6 +90,7 @@ import net.fabricmc.api.Environment; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.components.EditBox; import net.minecraft.client.gui.components.ImageButton; +import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; import net.minecraft.client.gui.screens.inventory.CraftingScreen; @@ -387,9 +388,13 @@ public class RoughlyEnoughItemsCoreClient { ClientScreenInputEvent.CHAR_TYPED_PRE.register((minecraftClient, screen, character, keyCode) -> { if (shouldReturn(screen) || screen instanceof DisplayScreen) return EventResult.pass(); - if (screen.getFocused() != null && screen.getFocused() instanceof EditBox || (screen.getFocused() instanceof RecipeBookComponent && ((RecipeBookComponent) screen.getFocused()).searchBox != null && ((RecipeBookComponent) screen.getFocused()).searchBox.isFocused())) - if (!REIRuntimeImpl.getSearchField().isFocused()) - return EventResult.pass(); + if (!REIRuntimeImpl.getSearchField().isFocused()) { + GuiEventListener focused = screen.getFocused(); + if (focused != null) { + if (focused instanceof EditBox editBox && editBox.isFocused()) return EventResult.pass(); + if (focused instanceof RecipeBookComponent book && book.searchBox != null && book.searchBox.isFocused()) return EventResult.pass(); + } + } resetFocused(screen); if (getOverlay().charTyped(character, keyCode) && resetFocused(screen)) @@ -461,9 +466,13 @@ public class RoughlyEnoughItemsCoreClient { return EventResult.interruptFalse(); } } - if (screen.getFocused() != null && screen.getFocused() instanceof EditBox || (screen.getFocused() instanceof RecipeBookComponent && ((RecipeBookComponent) screen.getFocused()).searchBox != null && ((RecipeBookComponent) screen.getFocused()).searchBox.isFocused())) - if (!REIRuntimeImpl.getSearchField().isFocused()) - return EventResult.pass(); + if (!REIRuntimeImpl.getSearchField().isFocused()) { + GuiEventListener focused = screen.getFocused(); + if (focused != null) { + if (focused instanceof EditBox editBox && editBox.isFocused()) return EventResult.pass(); + if (focused instanceof RecipeBookComponent book && book.searchBox != null && book.searchBox.isFocused()) return EventResult.pass(); + } + } resetFocused(screen); if (getOverlay().keyPressed(i, i1, i2) && resetFocused(screen)) @@ -473,9 +482,13 @@ public class RoughlyEnoughItemsCoreClient { ClientScreenInputEvent.KEY_RELEASED_PRE.register((minecraftClient, screen, i, i1, i2) -> { if (shouldReturn(screen) || screen instanceof DisplayScreen) return EventResult.pass(); - if (screen.getFocused() != null && screen.getFocused() instanceof EditBox || (screen.getFocused() instanceof RecipeBookComponent && ((RecipeBookComponent) screen.getFocused()).searchBox != null && ((RecipeBookComponent) screen.getFocused()).searchBox.isFocused())) - if (!REIRuntimeImpl.getSearchField().isFocused()) - return EventResult.pass(); + if (!REIRuntimeImpl.getSearchField().isFocused()) { + GuiEventListener focused = screen.getFocused(); + if (focused != null) { + if (focused instanceof EditBox editBox && editBox.isFocused()) return EventResult.pass(); + if (focused instanceof RecipeBookComponent book && book.searchBox != null && book.searchBox.isFocused()) return EventResult.pass(); + } + } resetFocused(screen); if (getOverlay().keyReleased(i, i1, i2) && resetFocused(screen)) |
