From 2c1d2b402b764dfbc5d0ef59c169810a46ce7902 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Saviot?= Date: Tue, 29 May 2018 16:08:06 +0200 Subject: [PATCH] [app/stats] Prevent histogram blinking --- apps/statistics/multiple_data_view.h | 1 + apps/statistics/multiple_data_view_controller.cpp | 4 ++-- apps/statistics/multiple_histograms_view.cpp | 4 ++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/statistics/multiple_data_view.h b/apps/statistics/multiple_data_view.h index 5937566ee..ec2c2c4e5 100644 --- a/apps/statistics/multiple_data_view.h +++ b/apps/statistics/multiple_data_view.h @@ -10,6 +10,7 @@ namespace Statistics { class MultipleDataView : public View { public: + static constexpr int k_defaultSelectedBar = 0; MultipleDataView(Store * store) : m_store(store), m_displayBanner(false) diff --git a/apps/statistics/multiple_data_view_controller.cpp b/apps/statistics/multiple_data_view_controller.cpp index 3859ae295..6e0cc0f3f 100644 --- a/apps/statistics/multiple_data_view_controller.cpp +++ b/apps/statistics/multiple_data_view_controller.cpp @@ -43,7 +43,7 @@ bool MultipleDataViewController::handleEvent(Ion::Events::Event event) { if (currentSelectedSubview < m_store->numberOfNonEmptySeries() - 1) { multipleDataView()->deselectDataView(m_selectedSeries); m_selectedSeries = multipleDataView()->seriesOfSubviewAtIndex(currentSelectedSubview+1); - *m_selectedBarIndex = 0; + *m_selectedBarIndex = MultipleDataView::k_defaultSelectedBar; multipleDataView()->selectDataView(m_selectedSeries); reloadBannerView(); app()->setFirstResponder(this); @@ -56,7 +56,7 @@ bool MultipleDataViewController::handleEvent(Ion::Events::Event event) { if (currentSelectedSubview > 0) { multipleDataView()->deselectDataView(m_selectedSeries); m_selectedSeries = multipleDataView()->seriesOfSubviewAtIndex(currentSelectedSubview-1); - *m_selectedBarIndex = 0; + *m_selectedBarIndex = MultipleDataView::k_defaultSelectedBar; multipleDataView()->selectDataView(m_selectedSeries); app()->setFirstResponder(this); } else { diff --git a/apps/statistics/multiple_histograms_view.cpp b/apps/statistics/multiple_histograms_view.cpp index 7d4126c03..5acfc9a74 100644 --- a/apps/statistics/multiple_histograms_view.cpp +++ b/apps/statistics/multiple_histograms_view.cpp @@ -48,6 +48,10 @@ void MultipleHistogramsView::layoutSubviews() { void MultipleHistogramsView::changeDataViewSelection(int index, bool select) { MultipleDataView::changeDataViewSelection(index, select); dataViewAtIndex(index)->setDisplayLabels(select); + if (select == false) { + // Set the hightlight to default selected bar to prevent blinking + dataViewAtIndex(index)->setHighlight(m_store->startOfBarAtIndex(index, k_defaultSelectedBar), m_store->endOfBarAtIndex(index, k_defaultSelectedBar)); + } } }