From 9c605baa7e31cf54231b92af808b5c957029d8eb Mon Sep 17 00:00:00 2001 From: johni0702 Date: Sat, 22 Oct 2016 23:15:06 +0200 Subject: [PATCH] Update jGui Fix handling of ESC key in popups (fixes #17) This commit changes the behavior of the escape key from closing the current gui screen to only closing the current layer of the gui screen. E.g. pressing ESC closes the popup but not the gui screen, it used to close both --- jGui | 2 +- .../online/gui/GuiReplayCenterSearch.java | 14 +++++++++++++- .../replay/gui/overlay/GuiEditMarkerPopup.java | 14 +++++++++++++- .../simplepathing/gui/GuiEditKeyframe.java | 14 +++++++++++++- 4 files changed, 40 insertions(+), 4 deletions(-) diff --git a/jGui b/jGui index 0dfcc65d..4125b3ac 160000 --- a/jGui +++ b/jGui @@ -1 +1 @@ -Subproject commit 0dfcc65d695d0fed7242ccea4ade580ebe69e8cb +Subproject commit 4125b3ac207b7afee753c0503e07f8f7899a9950 diff --git a/src/main/java/com/replaymod/online/gui/GuiReplayCenterSearch.java b/src/main/java/com/replaymod/online/gui/GuiReplayCenterSearch.java index 7ecfa148..9a39e54d 100644 --- a/src/main/java/com/replaymod/online/gui/GuiReplayCenterSearch.java +++ b/src/main/java/com/replaymod/online/gui/GuiReplayCenterSearch.java @@ -11,15 +11,18 @@ import de.johni0702.minecraft.gui.element.GuiLabel; import de.johni0702.minecraft.gui.element.GuiTextField; import de.johni0702.minecraft.gui.element.GuiToggleButton; import de.johni0702.minecraft.gui.element.advanced.GuiDropdownMenu; +import de.johni0702.minecraft.gui.function.Typeable; import de.johni0702.minecraft.gui.layout.GridLayout; import de.johni0702.minecraft.gui.popup.AbstractGuiPopup; import de.johni0702.minecraft.gui.utils.Colors; import net.minecraft.client.resources.I18n; +import org.lwjgl.input.Keyboard; +import org.lwjgl.util.ReadablePoint; import java.util.ArrayList; import java.util.List; -public class GuiReplayCenterSearch extends AbstractGuiPopup { +public class GuiReplayCenterSearch extends AbstractGuiPopup implements Typeable { private final GuiReplayCenter replayCenter; private final ApiClient apiClient; public final GuiLabel title = new GuiLabel().setI18nText("replaymod.gui.center.search.filters").setColor(Colors.BLACK); @@ -100,4 +103,13 @@ public class GuiReplayCenterSearch extends AbstractGuiPopup { +public class GuiEditMarkerPopup extends AbstractGuiPopup implements Typeable { private final ReplayHandler replayHandler; private final Marker marker; @@ -107,4 +110,13 @@ public class GuiEditMarkerPopup extends AbstractGuiPopup { protected GuiEditMarkerPopup getThis() { return this; } + + @Override + public boolean typeKey(ReadablePoint mousePosition, int keyCode, char keyChar, boolean ctrlDown, boolean shiftDown) { + if (keyCode == Keyboard.KEY_ESCAPE) { + cancelButton.onClick(); + return true; + } + return false; + } } diff --git a/src/main/java/com/replaymod/simplepathing/gui/GuiEditKeyframe.java b/src/main/java/com/replaymod/simplepathing/gui/GuiEditKeyframe.java index 335d79cf..0bf0a7c9 100644 --- a/src/main/java/com/replaymod/simplepathing/gui/GuiEditKeyframe.java +++ b/src/main/java/com/replaymod/simplepathing/gui/GuiEditKeyframe.java @@ -13,16 +13,19 @@ import de.johni0702.minecraft.gui.element.GuiButton; import de.johni0702.minecraft.gui.element.GuiLabel; import de.johni0702.minecraft.gui.element.GuiNumberField; import de.johni0702.minecraft.gui.element.IGuiLabel; +import de.johni0702.minecraft.gui.function.Typeable; import de.johni0702.minecraft.gui.layout.GridLayout; import de.johni0702.minecraft.gui.layout.HorizontalLayout; import de.johni0702.minecraft.gui.layout.VerticalLayout; import de.johni0702.minecraft.gui.popup.AbstractGuiPopup; import de.johni0702.minecraft.gui.utils.Colors; import org.apache.commons.lang3.tuple.Triple; +import org.lwjgl.input.Keyboard; +import org.lwjgl.util.ReadablePoint; import static de.johni0702.minecraft.gui.utils.Utils.link; -public abstract class GuiEditKeyframe> extends AbstractGuiPopup { +public abstract class GuiEditKeyframe> extends AbstractGuiPopup implements Typeable { private static GuiNumberField newGuiNumberField() { return new GuiNumberField().setPrecision(0).setValidateOnFocusChange(true); } @@ -84,6 +87,15 @@ public abstract class GuiEditKeyframe> extends Abst }); } + @Override + public boolean typeKey(ReadablePoint mousePosition, int keyCode, char keyChar, boolean ctrlDown, boolean shiftDown) { + if (keyCode == Keyboard.KEY_ESCAPE) { + cancelButton.onClick(); + return true; + } + return false; + } + @Override public void open() { super.open();