diff --git a/CHANGES b/CHANGES index 92ca10fc..1666dff6 100644 --- a/CHANGES +++ b/CHANGES @@ -22,6 +22,7 @@ - Fixed UI navigation cursor not updating when switching between controller and mouse - Fixed DesktopPlayerData not ensuring data directory exists when writing JSON or binary files - Fixed Sprite not carrying over flip status from TextureRegion +- Fixed out of bounds error when TextBox is set to value smaller than previous value - (#79) Add isInterpolateRequired() to collision classes [1.8.2] diff --git a/ui/src/main/java/org/mini2Dx/ui/element/TextBox.java b/ui/src/main/java/org/mini2Dx/ui/element/TextBox.java index c1b930d9..ccc1ebd5 100644 --- a/ui/src/main/java/org/mini2Dx/ui/element/TextBox.java +++ b/ui/src/main/java/org/mini2Dx/ui/element/TextBox.java @@ -24,6 +24,7 @@ import org.mini2Dx.ui.layout.*; import org.mini2Dx.ui.listener.ActionListener; import org.mini2Dx.ui.listener.TextInputListener; +import org.mini2Dx.ui.render.NodeState; import org.mini2Dx.ui.render.ParentRenderNode; import org.mini2Dx.ui.render.TextBoxRenderNode; import org.mini2Dx.ui.render.UiContainerRenderTree; @@ -293,6 +294,7 @@ public boolean grabInput(UiContainer uiContainer) { return false; } uiContainer.setActiveAction(renderNode); + renderNode.setState(NodeState.ACTION); return true; } diff --git a/ui/src/main/java/org/mini2Dx/ui/render/TextBoxRenderNode.java b/ui/src/main/java/org/mini2Dx/ui/render/TextBoxRenderNode.java index 701a5223..00f13829 100644 --- a/ui/src/main/java/org/mini2Dx/ui/render/TextBoxRenderNode.java +++ b/ui/src/main/java/org/mini2Dx/ui/render/TextBoxRenderNode.java @@ -82,6 +82,10 @@ public void update(UiContainerRenderTree uiContainer, float delta) { if (cursorTimer <= 0f) { cursorTimer += CURSOR_VISIBLE_DURATION * 2f; } + if (cursor > element.getValue().length()) { + cursor = element.getValue().length(); + setCursorRenderX(); + } cursorTimer -= delta; }