From 9a3620f1869fc6c97fb7456dd10fb1b64a72a96c Mon Sep 17 00:00:00 2001 From: lisyarus Date: Tue, 10 May 2022 11:51:47 +0300 Subject: [PATCH] Reset ui::edit caret on various events --- libs/ui/source/edit.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libs/ui/source/edit.cpp b/libs/ui/source/edit.cpp index 26a29dcf..a62d933a 100644 --- a/libs/ui/source/edit.cpp +++ b/libs/ui/source/edit.cpp @@ -210,10 +210,12 @@ namespace psemek::ui else if (e.key == SDLK_HOME) { caret_ = 0; + reset_caret(); } else if (e.key == SDLK_END) { caret_ = text_.size(); + reset_caret(); } else if (e.key == SDLK_RETURN) { @@ -247,6 +249,7 @@ namespace psemek::ui new_text.erase(new_text.begin() + caret_); if (!set_text(std::move(new_text), false)) ++caret_; + reset_caret(); } } else if (e.key == SDLK_DELETE) @@ -256,6 +259,7 @@ namespace psemek::ui auto new_text = text_; new_text.erase(new_text.begin() + caret_); set_text(std::move(new_text), false); + reset_caret(); } } @@ -274,6 +278,7 @@ namespace psemek::ui new_text.insert(new_text.begin() + caret_, range.begin(), range.end()); if (set_text(std::move(new_text), false)) caret_ += range.size(); + reset_caret(); return true; }