From f440912854cc3c9e626d60ee1ecb9e8d07f11d1b Mon Sep 17 00:00:00 2001 From: c0508383 Date: Tue, 12 Jul 2022 13:05:21 -0500 Subject: [PATCH] Fixed text area typing --- .../npcs/client/gui/util/GuiNpcTextArea.java | 50 ++++++++++--------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/src/main/java/noppes/npcs/client/gui/util/GuiNpcTextArea.java b/src/main/java/noppes/npcs/client/gui/util/GuiNpcTextArea.java index d684c0696..7e322740a 100644 --- a/src/main/java/noppes/npcs/client/gui/util/GuiNpcTextArea.java +++ b/src/main/java/noppes/npcs/client/gui/util/GuiNpcTextArea.java @@ -44,6 +44,10 @@ public class GuiNpcTextArea extends GuiNpcTextField implements IGui{ public void setText(String text) { super.setText(text); + updateLineList(); + } + + public void updateLineList() { List list = new ArrayList(); StringBuilder line = new StringBuilder(); for(char c : getText().toCharArray()){ @@ -62,31 +66,31 @@ public class GuiNpcTextArea extends GuiNpcTextField implements IGui{ public void updateCursorCounter(){ cursorCounter++; } - - @Override - public boolean textboxKeyTyped(char c, int i){ - if (isFocused() && canEdit){ - String originalText = getText(); - this.setText(originalText); - if(c == '\r' || c == '\n'){ - this.setText(originalText.substring(0, cursorPosition) + c + originalText.substring(cursorPosition)); - } - boolean bo = super.textboxKeyTyped(c, i); - String newText = getText(); - this.setText(newText); + @Override + public boolean textboxKeyTyped(char c, int i){ + if (isFocused() && canEdit){ + String originalText = getText(); + this.setText(originalText); + if(c == '\r' || c == '\n'){ + this.setText(originalText.substring(0, cursorPosition) + c + originalText.substring(cursorPosition)); + } this.setCursorPositionZero(); - this.moveCursorBy(cursorPosition); - if(i != Keyboard.KEY_DELETE) - cursorPosition += newText.length() - originalText.length(); - if(i == Keyboard.KEY_LEFT && cursorPosition > 0) - cursorPosition--; - if(i == Keyboard.KEY_RIGHT && cursorPosition < newText.length()) - cursorPosition++; - return bo; - } - return false; - } + this.moveCursorBy(cursorPosition); + boolean bo = super.textboxKeyTyped(c, i); + updateLineList(); + String newText = getText(); + if(i != Keyboard.KEY_DELETE) + cursorPosition += newText.length() - originalText.length(); + if(i == Keyboard.KEY_LEFT && cursorPosition > 0) + cursorPosition--; + if(i == Keyboard.KEY_RIGHT && cursorPosition < newText.length()) + cursorPosition++; + return bo; + + } + return false; + } @Override public void mouseClicked(int i, int j, int k){