Reset ui::edit caret on various events

This commit is contained in:
Nikita Lisitsa 2022-05-10 11:51:47 +03:00
parent ec228d481b
commit 9a3620f186

View file

@ -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;
}