diff --git a/escher/include/escher/tab_view_controller.h b/escher/include/escher/tab_view_controller.h index d3a581a23..9e6328b03 100644 --- a/escher/include/escher/tab_view_controller.h +++ b/escher/include/escher/tab_view_controller.h @@ -11,7 +11,7 @@ public: View * view() override; int activeTab() const; void setSelectedTab(int8_t index); - void setActiveTab(int8_t index, bool forceReactive = false); + void setActiveTab(int8_t index); uint8_t numberOfTabs(); const char * tabName(uint8_t index); diff --git a/escher/src/tab_view_controller.cpp b/escher/src/tab_view_controller.cpp index 0ac87489a..91672bfe3 100644 --- a/escher/src/tab_view_controller.cpp +++ b/escher/src/tab_view_controller.cpp @@ -98,31 +98,27 @@ bool TabViewController::handleEvent(Ion::Events::Event event) { return true; } if (event == Ion::Events::Down) { - setActiveTab(m_dataSource->activeTab(), false); + setActiveTab(m_dataSource->activeTab()); return true; } if (event == Ion::Events::OK || event == Ion::Events::EXE) { - setActiveTab(m_dataSource->selectedTab(), true); + setActiveTab(m_dataSource->selectedTab()); return true; } return false; } -void TabViewController::setActiveTab(int8_t i, bool forceReactive) { +void TabViewController::setActiveTab(int8_t i) { assert(i >= 0 && i < m_numberOfChildren); ViewController * activeVC = m_children[i]; - if (i != m_dataSource->activeTab() || forceReactive) { - if (i != m_dataSource->activeTab()) { - m_view.setActiveView(activeVC->view()); - m_children[i]->viewWillAppear(); - } + if (i != m_dataSource->activeTab()) { + m_view.setActiveView(activeVC->view()); + m_children[i]->viewWillAppear(); m_view.m_tabView.setActiveIndex(i); } app()->setFirstResponder(activeVC); - if (i != m_dataSource->activeTab() || forceReactive) { - if (m_dataSource->activeTab() >= 0 && m_dataSource->activeTab() != i) { - m_children[m_dataSource->activeTab()]->viewDidDisappear(); - } + if (i != m_dataSource->activeTab()) { + m_children[m_dataSource->activeTab()]->viewDidDisappear(); m_dataSource->setActiveTab(i); } }