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:07:12 +0800
commit2caa595aa94d46ddaefc5ecdb79f7ec834f7eae8 (patch)
treebff26cfa51f47f57dce3f5708572997b73e9745d /runtime/src/main/java
parente0070afe923df8ed28ebdc2f3d60e0ab2746e32f (diff)
downloadRoughlyEnoughItems-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.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 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))