From 843cc3769dffe1318b32a25f1dbeb8a0390a074d Mon Sep 17 00:00:00 2001 From: MihailRis Date: Wed, 29 Apr 2026 23:30:19 +0300 Subject: [PATCH] fix: manually changing textbox.caret does not reset selection --- src/graphics/ui/elements/TextBox.hpp | 2 +- src/logic/scripting/lua/libs/libgui.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/graphics/ui/elements/TextBox.hpp b/src/graphics/ui/elements/TextBox.hpp index 1e2621a18..cd70f80e7 100644 --- a/src/graphics/ui/elements/TextBox.hpp +++ b/src/graphics/ui/elements/TextBox.hpp @@ -77,7 +77,6 @@ namespace gui { void setTextOffset(uint x); bool eraseSelected(); - void resetSelection(); void extendSelection(int index); void tokenSelectAt(int index); size_t getLineLength(uint line) const; @@ -106,6 +105,7 @@ namespace gui { void paste(const std::wstring& text, bool history=true); void erase(size_t start, size_t length); + void resetSelection(); virtual void setTextSupplier(wstringsupplier supplier); diff --git a/src/logic/scripting/lua/libs/libgui.cpp b/src/logic/scripting/lua/libs/libgui.cpp index 382113171..0e53643db 100644 --- a/src/logic/scripting/lua/libs/libgui.cpp +++ b/src/logic/scripting/lua/libs/libgui.cpp @@ -759,6 +759,7 @@ static void p_set_text(UINode* node, lua::State* L, int idx) { static void p_set_caret(UINode* node, lua::State* L, int idx) { if (auto box = dynamic_cast(node)) { box->setCaret(static_cast(lua::tointeger(L, idx))); + box->resetSelection(); } } static void p_set_editable(UINode* node, lua::State* L, int idx) {