mirror of
https://github.com/ArthurSonzogni/FTXUI.git
synced 2025-09-17 16:38:09 +08:00
Fix Input onchange not called (#776)
This commit is contained in:
@@ -207,10 +207,11 @@ class InputBase : public ComponentBase, public InputOption {
|
||||
const size_t end = cursor_position();
|
||||
content->erase(start, end - start);
|
||||
cursor_position() = start;
|
||||
on_change();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool HandleDelete() {
|
||||
bool DeleteImpl() {
|
||||
if (cursor_position() == (int)content->size()) {
|
||||
return false;
|
||||
}
|
||||
@@ -220,6 +221,14 @@ class InputBase : public ComponentBase, public InputOption {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool HandleDelete() {
|
||||
if (DeleteImpl()) {
|
||||
on_change();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool HandleArrowLeft() {
|
||||
if (cursor_position() == 0) {
|
||||
return false;
|
||||
@@ -345,7 +354,7 @@ class InputBase : public ComponentBase, public InputOption {
|
||||
bool HandleCharacter(const std::string& character) {
|
||||
if (!insert() && cursor_position() < (int)content->size() &&
|
||||
content()[cursor_position()] != '\n') {
|
||||
HandleDelete();
|
||||
DeleteImpl();
|
||||
}
|
||||
content->insert(cursor_position(), character);
|
||||
cursor_position() += character.size();
|
||||
|
Reference in New Issue
Block a user