Reset ui::edit caret on various events
This commit is contained in:
parent
ec228d481b
commit
9a3620f186
1 changed files with 5 additions and 0 deletions
|
|
@ -210,10 +210,12 @@ namespace psemek::ui
|
||||||
else if (e.key == SDLK_HOME)
|
else if (e.key == SDLK_HOME)
|
||||||
{
|
{
|
||||||
caret_ = 0;
|
caret_ = 0;
|
||||||
|
reset_caret();
|
||||||
}
|
}
|
||||||
else if (e.key == SDLK_END)
|
else if (e.key == SDLK_END)
|
||||||
{
|
{
|
||||||
caret_ = text_.size();
|
caret_ = text_.size();
|
||||||
|
reset_caret();
|
||||||
}
|
}
|
||||||
else if (e.key == SDLK_RETURN)
|
else if (e.key == SDLK_RETURN)
|
||||||
{
|
{
|
||||||
|
|
@ -247,6 +249,7 @@ namespace psemek::ui
|
||||||
new_text.erase(new_text.begin() + caret_);
|
new_text.erase(new_text.begin() + caret_);
|
||||||
if (!set_text(std::move(new_text), false))
|
if (!set_text(std::move(new_text), false))
|
||||||
++caret_;
|
++caret_;
|
||||||
|
reset_caret();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (e.key == SDLK_DELETE)
|
else if (e.key == SDLK_DELETE)
|
||||||
|
|
@ -256,6 +259,7 @@ namespace psemek::ui
|
||||||
auto new_text = text_;
|
auto new_text = text_;
|
||||||
new_text.erase(new_text.begin() + caret_);
|
new_text.erase(new_text.begin() + caret_);
|
||||||
set_text(std::move(new_text), false);
|
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());
|
new_text.insert(new_text.begin() + caret_, range.begin(), range.end());
|
||||||
if (set_text(std::move(new_text), false))
|
if (set_text(std::move(new_text), false))
|
||||||
caret_ += range.size();
|
caret_ += range.size();
|
||||||
|
reset_caret();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue