aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main/java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2022-12-02 00:06:47 +0800
committershedaniel <daniel@shedaniel.me>2022-12-02 00:06:47 +0800
commit7d366ff57dbdd565d1f46916c724bc70103cdf62 (patch)
tree2aff831221ed56bbf719ca77adf43b7f0b95a352 /runtime/src/main/java
parentd10f159566d6cc1cec5c6cc5ac8165f2463b675d (diff)
downloadRoughlyEnoughItems-7d366ff57dbdd565d1f46916c724bc70103cdf62.tar.gz
RoughlyEnoughItems-7d366ff57dbdd565d1f46916c724bc70103cdf62.tar.bz2
RoughlyEnoughItems-7d366ff57dbdd565d1f46916c724bc70103cdf62.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.java31
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 f8185535d..c2a77ef59 100644
--- a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java
+++ b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java
@@ -91,6 +91,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;
@@ -390,9 +391,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))
@@ -464,9 +469,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))
@@ -476,9 +485,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))