diff --git a/apps/calculation/history_controller.cpp b/apps/calculation/history_controller.cpp index 22488d012..48fa3ec38 100644 --- a/apps/calculation/history_controller.cpp +++ b/apps/calculation/history_controller.cpp @@ -46,6 +46,9 @@ void HistoryController::didBecomeFirstResponder() { } void HistoryController::willExitResponderChain(Responder * nextFirstResponder) { + if (nextFirstResponder == nullptr) { + return; + } if (nextFirstResponder == parentResponder()) { m_selectableTableView.deselectTable(); } diff --git a/apps/shared/float_parameter_controller.cpp b/apps/shared/float_parameter_controller.cpp index 685d7f0ff..97196a6f3 100644 --- a/apps/shared/float_parameter_controller.cpp +++ b/apps/shared/float_parameter_controller.cpp @@ -48,6 +48,9 @@ void FloatParameterController::viewWillAppear() { template void FloatParameterController::willExitResponderChain(Responder * nextFirstResponder) { + if (nextFirstResponder == nullptr) { + return; + } if (parentResponder() == nullptr) { m_selectableTableView.deselectTable(); m_selectableTableView.scrollToCell(0,0); diff --git a/apps/shared/function_list_controller.cpp b/apps/shared/function_list_controller.cpp index 9b92dc46b..75e8b2102 100644 --- a/apps/shared/function_list_controller.cpp +++ b/apps/shared/function_list_controller.cpp @@ -207,6 +207,7 @@ void FunctionListController::didEnterResponderChain(Responder * previousFirstRes void FunctionListController::willExitResponderChain(Responder * nextFirstResponder) { if (nextFirstResponder == tabController()) { + assert(tabController() != nullptr); selectableTableView()->deselectTable(); footer()->setSelectedButton(-1); } diff --git a/apps/shared/interactive_curve_view_controller.cpp b/apps/shared/interactive_curve_view_controller.cpp index 2480f24c1..5c09086c1 100644 --- a/apps/shared/interactive_curve_view_controller.cpp +++ b/apps/shared/interactive_curve_view_controller.cpp @@ -165,7 +165,8 @@ void InteractiveCurveViewController::viewDidDisappear() { } void InteractiveCurveViewController::willExitResponderChain(Responder * nextFirstResponder) { - if (nextFirstResponder == nullptr || nextFirstResponder == tabController()) { + if (nextFirstResponder == tabController()) { + assert(tabController() != nullptr); curveView()->selectMainView(false); header()->setSelectedButton(-1); curveView()->reload(); diff --git a/apps/shared/tab_table_controller.cpp b/apps/shared/tab_table_controller.cpp index 767f0d916..30933ce98 100644 --- a/apps/shared/tab_table_controller.cpp +++ b/apps/shared/tab_table_controller.cpp @@ -17,6 +17,7 @@ void TabTableController::viewWillAppear() { void TabTableController::willExitResponderChain(Responder * nextFirstResponder) { if (nextFirstResponder == tabController()) { + assert(tabController() != nullptr); selectableTableView()->deselectTable(); selectableTableView()->scrollToCell(0,0); } diff --git a/apps/shared/values_controller.cpp b/apps/shared/values_controller.cpp index 8786a4a3d..2b99d788a 100644 --- a/apps/shared/values_controller.cpp +++ b/apps/shared/values_controller.cpp @@ -129,6 +129,7 @@ void ValuesController::didBecomeFirstResponder() { void ValuesController::willExitResponderChain(Responder * nextFirstResponder) { if (nextFirstResponder == tabController()) { + assert(tabController() != nullptr); selectableTableView()->deselectTable(); selectableTableView()->scrollToCell(0,0); header()->setSelectedButton(-1); diff --git a/apps/statistics/histogram_controller.cpp b/apps/statistics/histogram_controller.cpp index d92671801..cb302ce5b 100644 --- a/apps/statistics/histogram_controller.cpp +++ b/apps/statistics/histogram_controller.cpp @@ -70,7 +70,8 @@ void HistogramController::viewWillAppear() { } void HistogramController::willExitResponderChain(Responder * nextFirstResponder) { - if (nextFirstResponder == nullptr || nextFirstResponder == tabController()) { + if (nextFirstResponder == tabController()) { + assert(tabController() != nullptr); if (selectedSeriesIndex() >= 0) { m_view.dataViewAtIndex(selectedSeriesIndex())->setForceOkDisplay(false); } diff --git a/apps/statistics/multiple_data_view_controller.cpp b/apps/statistics/multiple_data_view_controller.cpp index c3c9f7d5c..d21807be5 100644 --- a/apps/statistics/multiple_data_view_controller.cpp +++ b/apps/statistics/multiple_data_view_controller.cpp @@ -79,7 +79,8 @@ void MultipleDataViewController::didEnterResponderChain(Responder * firstRespond } void MultipleDataViewController::willExitResponderChain(Responder * nextFirstResponder) { - if (nextFirstResponder == nullptr || nextFirstResponder == tabController()) { + if (nextFirstResponder == tabController()) { + assert(tabController() != nullptr); assert(*m_selectedSeriesIndex >= 0); multipleDataView()->deselectDataView(*m_selectedSeriesIndex); multipleDataView()->setDisplayBanner(false); diff --git a/escher/src/selectable_table_view.cpp b/escher/src/selectable_table_view.cpp index c7922a42c..bb07591f0 100644 --- a/escher/src/selectable_table_view.cpp +++ b/escher/src/selectable_table_view.cpp @@ -58,7 +58,9 @@ void SelectableTableView::didEnterResponderChain(Responder * previousFirstRespon } void SelectableTableView::willExitResponderChain(Responder * nextFirstResponder) { - unhighlightSelectedCell(); + if (nextFirstResponder != nullptr) { + unhighlightSelectedCell(); + } } void SelectableTableView::deselectTable(bool withinTemporarySelection) {