From d411cf176b9cb0d20772a3d41e53a6ed5a14a8ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Fri, 5 May 2017 20:52:00 +0200 Subject: [PATCH] [apps] In curve views, reselect the view when entering responder chain Change-Id: I4453b7f646f29ab3ea15a572ef7bf883d739cba2 --- apps/shared/interactive_curve_view_controller.cpp | 9 +++++++++ apps/shared/interactive_curve_view_controller.h | 1 + apps/statistics/histogram_controller.cpp | 12 +++++++----- apps/statistics/histogram_controller.h | 2 +- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/apps/shared/interactive_curve_view_controller.cpp b/apps/shared/interactive_curve_view_controller.cpp index 569491e22..429eb11ac 100644 --- a/apps/shared/interactive_curve_view_controller.cpp +++ b/apps/shared/interactive_curve_view_controller.cpp @@ -152,6 +152,15 @@ void InteractiveCurveViewController::viewWillAppear() { curveView()->setOkView(&m_okView); } +void InteractiveCurveViewController::didEnterResponderChain(Responder * previousFirstResponder) { + if (!curveView()->isMainViewSelected()) { + curveView()->selectMainView(true); + header()->setSelectedButton(-1); + reloadBannerView(); + curveView()->reload(); + } +} + void InteractiveCurveViewController::willExitResponderChain(Responder * nextFirstResponder) { if (nextFirstResponder == tabController()) { curveView()->selectMainView(false); diff --git a/apps/shared/interactive_curve_view_controller.h b/apps/shared/interactive_curve_view_controller.h index da906691d..d8c8aafad 100644 --- a/apps/shared/interactive_curve_view_controller.h +++ b/apps/shared/interactive_curve_view_controller.h @@ -31,6 +31,7 @@ public: void viewWillAppear() override; void willExitResponderChain(Responder * nextFirstResponder) override; + void didEnterResponderChain(Responder * previousFirstResponder) override; protected: constexpr static float k_numberOfCursorStepsInGradUnit = 5.0f; virtual BannerView * bannerView() = 0; diff --git a/apps/statistics/histogram_controller.cpp b/apps/statistics/histogram_controller.cpp index 0df38a3c6..a883cd813 100644 --- a/apps/statistics/histogram_controller.cpp +++ b/apps/statistics/histogram_controller.cpp @@ -125,11 +125,13 @@ Responder * HistogramController::defaultController() { return tabController(); } -void HistogramController::viewWillAppear() { - m_view.selectMainView(true); - header()->setSelectedButton(-1); - reloadBannerView(); - m_view.reload(); +void HistogramController::didEnterResponderChain(Responder * previousFirstResponder) { + if (!m_view.isMainViewSelected()) { + m_view.selectMainView(true); + header()->setSelectedButton(-1); + reloadBannerView(); + m_view.reload(); + } } void HistogramController::willExitResponderChain(Responder * nextFirstResponder) { diff --git a/apps/statistics/histogram_controller.h b/apps/statistics/histogram_controller.h index 59d454ae1..64f27eea1 100644 --- a/apps/statistics/histogram_controller.h +++ b/apps/statistics/histogram_controller.h @@ -27,7 +27,7 @@ public: bool isEmpty() const override; I18n::Message emptyMessage() override; Responder * defaultController() override; - void viewWillAppear() override; + void didEnterResponderChain(Responder * previousFirstResponder) override; void willExitResponderChain(Responder * nextFirstResponder) override; private: constexpr static int k_maxNumberOfBarsPerWindow = 100;