diff --git a/apps/code/menu_controller.cpp b/apps/code/menu_controller.cpp index f1cb542c1..e6b561258 100644 --- a/apps/code/menu_controller.cpp +++ b/apps/code/menu_controller.cpp @@ -272,18 +272,6 @@ bool MenuController::textFieldShouldFinishEditing(TextField * textField, Ion::Ev } bool MenuController::textFieldDidReceiveEvent(TextField * textField, Ion::Events::Event event) { - if (event == Ion::Events::Right && textField->isEditing()) { - int scriptExtensionLength = strlen(ScriptStore::k_scriptExtension); - if (textField->cursorLocation() > textField->draftTextLength() - scriptExtensionLength - 1) { - return true; - } - } - if (event.hasText() && textField->isEditing()) { - size_t eventTextLength = strlen(event.text()); - if (textField->draftTextLength() + eventTextLength >= TextField::maxBufferSize()) { - return true; - } - } if (event == Ion::Events::Left && textField->isEditing() && textField->cursorLocation() == 0) { return true; } @@ -334,6 +322,14 @@ bool MenuController::textFieldDidAbortEditing(TextField * textField, const char return true; } +bool MenuController::textFieldDidHandleEvent(TextField * textField, Ion::Events::Event event, bool returnValue) { + int scriptExtensionLength = strlen(ScriptStore::k_scriptExtension); + if (textField->isEditing() && textField->cursorLocation() > textField->draftTextLength() - scriptExtensionLength) { + textField->setCursorLocation(textField->draftTextLength() - scriptExtensionLength); + } + return returnValue; +} + void MenuController::addScript() { if (m_scriptStore->addNewScript()) { updateAddScriptRowDisplay(); diff --git a/apps/code/menu_controller.h b/apps/code/menu_controller.h index ee44c94b2..4199693aa 100644 --- a/apps/code/menu_controller.h +++ b/apps/code/menu_controller.h @@ -53,7 +53,8 @@ public: bool textFieldDidReceiveEvent(TextField * textField, Ion::Events::Event event) override; bool textFieldDidFinishEditing(TextField * textField, const char * text, Ion::Events::Event event) override; bool textFieldDidAbortEditing(TextField * textField, const char * text) override; - Toolbox * toolboxForTextField(TextField * textFied) override { return nullptr; } + bool textFieldDidHandleEvent(TextField * textField, Ion::Events::Event event, bool returnValue) override; + Toolbox * toolboxForTextField(TextField * textField) override { return nullptr; } /* ButtonRowDelegate */ int numberOfButtons(ButtonRowController::Position position) const override { return 1; }