From 633b1486f59ec7dfbac2f099a3e7cca4a555efaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Fri, 24 Mar 2017 23:22:49 +0100 Subject: [PATCH] [apps/sequence][apps/graph] Define x/n only in list controllers Change-Id: I9b30bc16c3454a0531ebcd40a5fe5169c0af6f24 --- apps/graph/app.cpp | 5 ++++- apps/sequence/app.cpp | 7 +++++-- apps/sequence/app.h | 2 +- escher/include/escher/tab_view_controller.h | 2 +- escher/src/tab_view_controller.cpp | 4 ++++ 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/apps/graph/app.cpp b/apps/graph/app.cpp index 4284473bd..3906c9822 100644 --- a/apps/graph/app.cpp +++ b/apps/graph/app.cpp @@ -33,7 +33,10 @@ InputViewController * App::inputViewController() { } Context * App::localContext() { - return &m_xContext; + if (m_tabViewController.activeTab() == 0) { + return &m_xContext; + } + return TextFieldDelegateApp::localContext(); } } diff --git a/apps/sequence/app.cpp b/apps/sequence/app.cpp index 8fea0a214..9ca86b5a2 100644 --- a/apps/sequence/app.cpp +++ b/apps/sequence/app.cpp @@ -30,8 +30,11 @@ InputViewController * App::inputViewController() { return &m_inputViewController; } -LocalContext * App::localContext() { - return &m_nContext; +Context * App::localContext() { + if (m_tabViewController.activeTab() == 0) { + return &m_nContext; + } + return TextFieldDelegateApp::localContext(); } const char * App::XNT() { diff --git a/apps/sequence/app.h b/apps/sequence/app.h index 3da374b10..ce266f7c4 100644 --- a/apps/sequence/app.h +++ b/apps/sequence/app.h @@ -16,7 +16,7 @@ class App : public Shared::TextFieldDelegateApp { public: App(Container * container, Poincare::Context * context); InputViewController * inputViewController(); - LocalContext * localContext() override; + Poincare::Context * localContext() override; const char * XNT() override; private: SequenceStore m_sequenceStore; diff --git a/escher/include/escher/tab_view_controller.h b/escher/include/escher/tab_view_controller.h index 7b464b61b..7a3aa0934 100644 --- a/escher/include/escher/tab_view_controller.h +++ b/escher/include/escher/tab_view_controller.h @@ -8,7 +8,7 @@ class TabViewController : public ViewController { public: TabViewController(Responder * parentResponder, ViewController * one, ViewController * two, ViewController * three, ViewController * four = nullptr); View * view() override; - + int activeTab() const; void setSelectedTab(int8_t index); void setActiveTab(int8_t index, bool forceReactive = false); uint8_t numberOfTabs(); diff --git a/escher/src/tab_view_controller.cpp b/escher/src/tab_view_controller.cpp index 88cc647fb..0d259e007 100644 --- a/escher/src/tab_view_controller.cpp +++ b/escher/src/tab_view_controller.cpp @@ -69,6 +69,10 @@ TabViewController::TabViewController(Responder * parentResponder, ViewController } } +int TabViewController::activeTab() const { + return m_activeChildIndex; +} + bool TabViewController::handleEvent(Ion::Events::Event event) { if (event == Ion::Events::Back) { if (app()->firstResponder() != this) {