From f96a4556aa63280ef73f9c0f57f0f40bfe456250 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Wed, 31 May 2017 10:22:39 +0200 Subject: [PATCH] [apps/sequence][apps/graph] Switch to editing the function after event 'toolbox' or 'variables' Change-Id: Iaa7b04871c4a74abf2ddcfc5905804448c7a44a4 --- apps/shared/list_controller.cpp | 2 +- apps/shared/text_field_delegate_app.cpp | 3 +++ escher/src/text_field.cpp | 5 +++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/apps/shared/list_controller.cpp b/apps/shared/list_controller.cpp index 0b8487d1d..80bc1ef65 100644 --- a/apps/shared/list_controller.cpp +++ b/apps/shared/list_controller.cpp @@ -222,7 +222,7 @@ bool ListController::handleEvent(Ion::Events::Event event) { } return true; } - if ((event.hasText() || event == Ion::Events::XNT || event == Ion::Events::Paste) + if ((event.hasText() || event == Ion::Events::XNT || event == Ion::Events::Paste || event == Ion::Events::Toolbox || event == Ion::Events::Var) && selectedColumn() == 1 && (selectedRow() != numberOfRows() - 1 || m_functionStore->numberOfFunctions() == m_functionStore->maxNumberOfFunctions())) { diff --git a/apps/shared/text_field_delegate_app.cpp b/apps/shared/text_field_delegate_app.cpp index 22ae44e3a..f7d6c155e 100644 --- a/apps/shared/text_field_delegate_app.cpp +++ b/apps/shared/text_field_delegate_app.cpp @@ -48,6 +48,9 @@ bool TextFieldDelegateApp::textFieldDidReceiveEvent(TextField * textField, Ion:: } } if (event == Ion::Events::Var) { + if (!textField->isEditing()) { + textField->setEditing(true); + } AppsContainer * appsContainer = (AppsContainer *)textField->app()->container(); VariableBoxController * variableBoxController = appsContainer->variableBoxController(); variableBoxController->setTextFieldCaller(textField); diff --git a/escher/src/text_field.cpp b/escher/src/text_field.cpp index b305de83e..69a992c87 100644 --- a/escher/src/text_field.cpp +++ b/escher/src/text_field.cpp @@ -296,6 +296,11 @@ bool TextField::textFieldShouldFinishEditing(Ion::Events::Event event) { bool TextField::handleEvent(Ion::Events::Event event) { assert(m_delegate != nullptr); if (Responder::handleEvent(event)) { + /* The only event Responder handles is 'Toolbox' displaying. In that case, + * the text field is forced into editing mode. */ + if (!isEditing()) { + setEditing(true); + } return true; } if (event == Ion::Events::Left && isEditing() && cursorLocation() > 0) {