From cd1b6c8feb9a3f580324a5b498267431faaae70c Mon Sep 17 00:00:00 2001 From: mezz Date: Tue, 5 Jul 2016 18:30:29 -0700 Subject: [PATCH] Fix #199 Correctly restore Keyboard.areRepeatEventsEnabled --- gradle.properties | 2 +- .../java/mezz/jei/input/GuiTextFieldFilter.java | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/gradle.properties b/gradle.properties index 3059540e6..3290d0cf5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,4 +5,4 @@ curse_project_id=238222 version_major=3 version_minor=7 -version_patch=3 +version_patch=4 diff --git a/src/main/java/mezz/jei/input/GuiTextFieldFilter.java b/src/main/java/mezz/jei/input/GuiTextFieldFilter.java index 95dbbde59..fab523281 100644 --- a/src/main/java/mezz/jei/input/GuiTextFieldFilter.java +++ b/src/main/java/mezz/jei/input/GuiTextFieldFilter.java @@ -19,6 +19,7 @@ public class GuiTextFieldFilter extends GuiTextField { private final List history = new LinkedList<>(); private final HoverChecker hoverChecker; private ItemFilter itemFilter; + private boolean previousKeyboardRepeatEnabled; public GuiTextFieldFilter(int componentId, FontRenderer fontRenderer, int x, int y, int width, int height) { super(componentId, fontRenderer, x, y, width, height); @@ -95,11 +96,20 @@ public boolean handleMouseClicked(int mouseX, int mouseY, int mouseButton) { @Override public void setFocused(boolean keyboardFocus) { + final boolean previousFocus = isFocused(); super.setFocused(keyboardFocus); - Keyboard.enableRepeatEvents(keyboardFocus); - if (!keyboardFocus) { - saveHistory(); + if (previousFocus != keyboardFocus) { + if (keyboardFocus) { + previousKeyboardRepeatEnabled = Keyboard.areRepeatEventsEnabled(); + Keyboard.enableRepeatEvents(true); + } else { + Keyboard.enableRepeatEvents(previousKeyboardRepeatEnabled); + } + + if (!keyboardFocus) { + saveHistory(); + } } }