diff --git a/src/main/java/eu/crushedpixel/replaymod/gui/elements/GuiTextArea.java b/src/main/java/eu/crushedpixel/replaymod/gui/elements/GuiTextArea.java index baa2116d..be2814cc 100644 --- a/src/main/java/eu/crushedpixel/replaymod/gui/elements/GuiTextArea.java +++ b/src/main/java/eu/crushedpixel/replaymod/gui/elements/GuiTextArea.java @@ -510,127 +510,118 @@ public class GuiTextArea extends Gui implements GuiElement, GuiOutsideClickableE return; } - try { - if (GuiScreen.isCtrlKeyDown()) { - switch (keyCode) { - case Keyboard.KEY_A: // Select all - cursorX = cursorY = 0; - selectionY = text.length - 1; - selectionX = text[selectionY].length(); - updateCurrentXOffset(); - updateCurrentYOffset(); - return; - case Keyboard.KEY_C: // Copy - GuiScreen.setClipboardString(getSelectedText()); - return; - case Keyboard.KEY_V: // Paste - if (enabled) { - writeText(GuiScreen.getClipboardString()); - } - return; - case Keyboard.KEY_X: // Cut - if (enabled) { - GuiScreen.setClipboardString(cutSelectedText()); - } - return; - } - } - - boolean words = GuiScreen.isCtrlKeyDown(); - boolean select = GuiScreen.isShiftKeyDown(); + if (GuiScreen.isCtrlKeyDown()) { switch (keyCode) { - case Keyboard.KEY_HOME: - cursorX = 0; - break; - case Keyboard.KEY_END: - cursorX = text[cursorY].length(); - break; - case Keyboard.KEY_LEFT: - if (cursorX == 0) { - if (cursorY > 0) { - cursorY--; - cursorX = text[cursorY].length(); - } - } else { - if (words) { - cursorX -= getPreviousWordLength(); - } else { - cursorX--; - } + case Keyboard.KEY_A: // Select all + cursorX = cursorY = 0; + selectionY = text.length - 1; + selectionX = text[selectionY].length(); + updateCurrentXOffset(); + updateCurrentYOffset(); + return; + case Keyboard.KEY_C: // Copy + GuiScreen.setClipboardString(getSelectedText()); + return; + case Keyboard.KEY_V: // Paste + if (enabled) { + writeText(GuiScreen.getClipboardString()); } - break; - case Keyboard.KEY_RIGHT: - if (cursorX == text[cursorY].length()) { - if (cursorY < text.length - 1) { - cursorY++; - cursorX = 0; - } - } else { - if (words) { - cursorX += getNextWordLength(); - } else { - cursorX++; - } + return; + case Keyboard.KEY_X: // Cut + if (enabled) { + GuiScreen.setClipboardString(cutSelectedText()); } - break; - case Keyboard.KEY_UP: + return; + } + } + + boolean words = GuiScreen.isCtrlKeyDown(); + boolean select = GuiScreen.isShiftKeyDown(); + switch (keyCode) { + case Keyboard.KEY_HOME: + cursorX = 0; + break; + case Keyboard.KEY_END: + cursorX = text[cursorY].length(); + break; + case Keyboard.KEY_LEFT: + if (cursorX == 0) { if (cursorY > 0) { cursorY--; - cursorX = Math.min(cursorX, text[cursorY].length()); + cursorX = text[cursorY].length(); } - break; - case Keyboard.KEY_DOWN: - if (cursorY + 1 < text.length) { + } else { + if (words) { + cursorX -= getPreviousWordLength(); + } else { + cursorX--; + } + } + break; + case Keyboard.KEY_RIGHT: + if (cursorX == text[cursorY].length()) { + if (cursorY < text.length - 1) { cursorY++; - cursorX = Math.min(cursorX, text[cursorY].length()); + cursorX = 0; } - break; - case Keyboard.KEY_BACK: - if (enabled) { - if (getSelectedText().length() > 0) { - deleteSelectedText(); - } else if (words) { - deletePreviousWord(); - } else { - deletePreviousChar(); - } + } else { + if (words) { + cursorX += getNextWordLength(); + } else { + cursorX++; } - return; - case Keyboard.KEY_DELETE: - if (enabled) { - if (getSelectedText().length() > 0) { - deleteSelectedText(); - } else if (words) { - deleteNextWord(); - } else { - deleteNextChar(); - } + } + break; + case Keyboard.KEY_UP: + if (cursorY > 0) { + cursorY--; + cursorX = Math.min(cursorX, text[cursorY].length()); + } + break; + case Keyboard.KEY_DOWN: + if (cursorY + 1 < text.length) { + cursorY++; + cursorX = Math.min(cursorX, text[cursorY].length()); + } + break; + case Keyboard.KEY_BACK: + if (enabled) { + if (getSelectedText().length() > 0) { + deleteSelectedText(); + } else if (words) { + deletePreviousWord(); + } else { + deletePreviousChar(); } - return; - default: - if (enabled) { - if (key == '\r') { - key = '\n'; - } - writeChar(key); + } + return; + case Keyboard.KEY_DELETE: + if (enabled) { + if (getSelectedText().length() > 0) { + deleteSelectedText(); + } else if (words) { + deleteNextWord(); + } else { + deleteNextChar(); } - return; - } + } + return; + default: + if (enabled) { + if (key == '\r') { + key = '\n'; + } + writeChar(key); + } + return; + } - updateCurrentXOffset(); - updateCurrentYOffset(); + updateCurrentXOffset(); + updateCurrentYOffset(); - if (!select) { - selectionX = cursorX; - selectionY = cursorY; - } - } finally { - System.out.println(cursorX + "/" + cursorY); - System.out.println(selectionX + "/" + selectionY); - System.out.println("Lines (" + text.length + "): "); - for (String line : text) { - System.out.println(line); - } + if (!select) { + selectionX = cursorX; + selectionY = cursorY; } }