mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[apps/code/menu_controller] Fix Clear handling in text field
The menu controller handled Clear but it clashed with any ongoing selection. In fact, eveything handled in textFieldDidReceiveEvent was already handled in TextFieldWithExtension
This commit is contained in:
@@ -290,24 +290,6 @@ bool MenuController::textFieldShouldFinishEditing(TextField * textField, Ion::Ev
|
||||
|| event == Ion::Events::Down || event == Ion::Events::Up;
|
||||
}
|
||||
|
||||
bool MenuController::textFieldDidReceiveEvent(TextField * textField, Ion::Events::Event event) {
|
||||
if (event == Ion::Events::Right
|
||||
&& textField->isEditing()
|
||||
&& textField->cursorLocation() == textField->text() + textField->draftTextLength()) {
|
||||
return true;
|
||||
}
|
||||
if (event == Ion::Events::Clear && textField->isEditing()) {
|
||||
constexpr size_t k_bufferSize = 4;
|
||||
char buffer[k_bufferSize] = {'.', 0, 0, 0};
|
||||
assert(k_bufferSize >= 1 + strlen(ScriptStore::k_scriptExtension) + 1);
|
||||
strlcpy(&buffer[1], ScriptStore::k_scriptExtension, strlen(ScriptStore::k_scriptExtension) + 1);
|
||||
textField->setText(buffer);
|
||||
textField->setCursorLocation(textField->text());
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool MenuController::textFieldDidFinishEditing(TextField * textField, const char * text, Ion::Events::Event event) {
|
||||
const char * newName;
|
||||
static constexpr int bufferSize = Script::k_defaultScriptNameMaxSize + 1 + ScriptStore::k_scriptExtensionLength; //"script99" + "." + "py"
|
||||
|
||||
@@ -51,7 +51,7 @@ public:
|
||||
|
||||
/* TextFieldDelegate */
|
||||
bool textFieldShouldFinishEditing(TextField * textField, Ion::Events::Event event) override;
|
||||
bool textFieldDidReceiveEvent(TextField * textField, Ion::Events::Event event) override;
|
||||
bool textFieldDidReceiveEvent(TextField * textField, Ion::Events::Event event) override { return false; }
|
||||
bool textFieldDidFinishEditing(TextField * textField, const char * text, Ion::Events::Event event) override;
|
||||
bool textFieldDidAbortEditing(TextField * textField) override {
|
||||
return privateTextFieldDidAbortEditing(textField, true);
|
||||
|
||||
Reference in New Issue
Block a user