diff --git a/src/main/java/meteordevelopment/meteorclient/gui/WidgetScreen.java b/src/main/java/meteordevelopment/meteorclient/gui/WidgetScreen.java index 3dd5b09357..ba76acb49a 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/WidgetScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/WidgetScreen.java @@ -129,6 +129,13 @@ public boolean mouseClicked(MouseButtonEvent click, boolean doubled) { mouseX *= s; mouseY *= s; + // Unfocus all text boxes that are not under the mouse cursor + loopWidgets(root, widget -> { + if (widget instanceof WTextBox textBox && textBox.isFocused() && !textBox.mouseOver) { + textBox.setFocused(false); + } + }); + return root.mouseClicked(new MouseButtonEvent(mouseX, mouseY, click.buttonInfo()), doubled); } @@ -337,9 +344,17 @@ public void removed() { } if (onClose) { + double restoreX = lastMouseX / mc.getWindow().getGuiScale(); + double restoreY = lastMouseY / mc.getWindow().getGuiScale(); + taskAfterRender = () -> { locked = true; mc.setScreen(parent); + + // Restore mouse position to where it was when the screen was closed + if (parent == null) { + glfwSetCursorPos(mc.getWindow().getWindow(), restoreX, restoreY); + } }; } } @@ -424,4 +439,4 @@ public boolean render(GuiRenderer renderer, double mouseX, double mouseY, double return super.render(renderer, mouseX, mouseY, delta); } } -} +} \ No newline at end of file diff --git a/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/widgets/input/WMeteorTextBox.java b/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/widgets/input/WMeteorTextBox.java index f2b740bb24..b844b6aaec 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/widgets/input/WMeteorTextBox.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/widgets/input/WMeteorTextBox.java @@ -93,6 +93,7 @@ public String getCompletion() { protected void onCursorChanged() { cursorVisible = true; cursorTimer = 0; + animProgress = focused ? 1.0 : 0.0; } @Override @@ -139,4 +140,4 @@ protected void onRender(GuiRenderer renderer, double mouseX, double mouseY, doub renderer.scissorEnd(); } -} +} \ No newline at end of file