diff --git a/src/main/java/noppes/npcs/client/gui/script/GuiScriptInterface.java b/src/main/java/noppes/npcs/client/gui/script/GuiScriptInterface.java index 4d588f651..ec2acb90d 100644 --- a/src/main/java/noppes/npcs/client/gui/script/GuiScriptInterface.java +++ b/src/main/java/noppes/npcs/client/gui/script/GuiScriptInterface.java @@ -279,10 +279,20 @@ public class GuiScriptInterface extends GuiNPCInterface implements GuiYesNoCallb // ==================== MOUSE HANDLING ==================== + @Override @Override public void mouseClicked(int mouseX, int mouseY, int mouseButton) { + // Check if click is within autocomplete menu bounds and consume it if so + GuiScriptTextArea activeArea = getActiveScriptArea(); + if (activeArea != null && activeArea.isClickInAutocompleteMenu(mouseX, mouseY)) { + activeArea.mouseClicked(mouseX, mouseY, mouseButton); + return; + } + // Check fullscreen button first when on script editor tab - if (this.activeTab > 0 && fullscreenButton.mouseClicked(mouseX, mouseY, mouseButton)) { + // BUT only if autocomplete is not visible (don't let clicks pass through autocomplete menu) + if (this.activeTab > 0 && (activeArea == null || !activeArea.isAutocompleteVisible()) + && fullscreenButton.mouseClicked(mouseX, mouseY, mouseButton)) { return; } diff --git a/src/main/java/noppes/npcs/client/gui/util/GuiScriptTextArea.java b/src/main/java/noppes/npcs/client/gui/util/GuiScriptTextArea.java index c06b21459..5f6aa0653 100644 --- a/src/main/java/noppes/npcs/client/gui/util/GuiScriptTextArea.java +++ b/src/main/java/noppes/npcs/client/gui/util/GuiScriptTextArea.java @@ -11,6 +11,7 @@ import noppes.npcs.client.gui.util.key.OverlayKeyPresetViewer; import noppes.npcs.client.gui.util.script.*; import noppes.npcs.client.gui.util.script.JavaTextContainer.LineData; // New interpreter system imports +import noppes.npcs.client.gui.util.script.autocomplete.AutocompleteMenu; import noppes.npcs.client.gui.util.script.interpreter.ScriptLine; import noppes.npcs.client.gui.util.script.interpreter.ScriptTextContainer; import noppes.npcs.client.gui.util.script.interpreter.method.MethodInfo; @@ -2489,6 +2490,32 @@ public class GuiScriptTextArea extends GuiNpcTextField { selection.clamp(text != null ? text.length() : 0); } + // ==================== AUTOCOMPLETE VISIBILITY ==================== + + /** + * Check if a click position is within the bounds of the autocomplete menu. + * Returns false if autocomplete is not visible. + */ + public boolean isClickInAutocompleteMenu(int mouseX, int mouseY) { + if (autocompleteManager == null || !autocompleteManager.isVisible()) { + return false; + } + + + AutocompleteMenu menu = autocompleteManager.getMenu(); + if (menu == null) { + return false; + } + + int menuX = menu.getX(); + int menuY = menu.getY(); + int menuWidth = menu.getWidth(); + int menuHeight = menu.getHeight(); + + return mouseX >= menuX && mouseX <= menuX + menuWidth && + mouseY >= menuY && mouseY <= menuY + menuHeight; + } + // ==================== INNER CLASSES ==================== public static class UndoData {