From a2ee9f7570b2b1ee7f7b51950301715a15496d00 Mon Sep 17 00:00:00 2001 From: Danielshe Date: Mon, 19 Aug 2019 22:08:27 +0800 Subject: Build 2: Fix bugs - Fix freeze caused by the backspace feature - Page buttons gone when the search box is on top - Fixed #143 - Made text red when no entry has been found --- .../me/shedaniel/rei/gui/widget/SearchFieldWidget.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/main/java/me/shedaniel/rei/gui/widget') diff --git a/src/main/java/me/shedaniel/rei/gui/widget/SearchFieldWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/SearchFieldWidget.java index 40a54f1df..74f7a884d 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/SearchFieldWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/SearchFieldWidget.java @@ -6,14 +6,19 @@ package me.shedaniel.rei.gui.widget; import com.mojang.blaze3d.platform.GlStateManager; +import me.shedaniel.rei.gui.ContainerScreenOverlay; +import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.GuiLighting; import net.minecraft.client.resource.language.I18n; import net.minecraft.client.sound.PositionedSoundInstance; +import net.minecraft.client.util.InputUtil; import net.minecraft.sound.SoundEvents; public class SearchFieldWidget extends TextFieldWidget { public static boolean isSearching = false; + public long keybindFocusTime = -1; + public int keybindFocusKey = -1; protected long lastClickedTime = -1; public SearchFieldWidget(int x, int y, int width, int height) { @@ -24,7 +29,7 @@ public class SearchFieldWidget extends TextFieldWidget { public void laterRender(int int_1, int int_2, float float_1) { GuiLighting.disable(); GlStateManager.disableDepthTest(); - setEditableColor(isSearching ? -1313241 : 14737632); + setEditableColor(ContainerScreenOverlay.getEntryListWidget().children().isEmpty() && !getText().isEmpty() ? 16733525 : isSearching ? -1313241 : 14737632); setSuggestion(!isFocused() && getText().isEmpty() ? I18n.translate("text.rei.search.field.suggestion") : null); super.render(int_1, int_2, float_1); GlStateManager.enableDepthTest(); @@ -68,6 +73,16 @@ public class SearchFieldWidget extends TextFieldWidget { return super.keyPressed(int_1, int_2, int_3); } + @Override + public boolean charTyped(char char_1, int int_1) { + if (System.currentTimeMillis() - keybindFocusTime < 1000 && InputUtil.isKeyPressed(MinecraftClient.getInstance().window.getHandle(), keybindFocusKey)) { + keybindFocusTime = -1; + keybindFocusKey = -1; + return true; + } + return super.charTyped(char_1, int_1); + } + @Override public void render(int int_1, int int_2, float float_1) { } -- cgit