diff --git a/apps/graph/graph/curve_parameter_controller.cpp b/apps/graph/graph/curve_parameter_controller.cpp index 4b67ba179..5bdc1cbb8 100644 --- a/apps/graph/graph/curve_parameter_controller.cpp +++ b/apps/graph/graph/curve_parameter_controller.cpp @@ -76,6 +76,13 @@ int CurveParameterController::reusableCellCount() { return 1 + (shouldDisplayCalculationAndDerivative() ? 2 : 0); } +void CurveParameterController::viewDidDisappear() { + /* Deselect the table properly because it needs to be relayouted the next time + * it appears: the number of rows might change according to the plot type. */ + m_selectableTableView.deselectTable(false); + m_selectableTableView.setFrame(KDRectZero); +} + bool CurveParameterController::shouldDisplayCalculationAndDerivative() const { Shared::ExpiringPointer f = App::app()->functionStore()->modelForRecord(m_record); return f->plotType() == CartesianFunction::PlotType::Cartesian; diff --git a/apps/graph/graph/curve_parameter_controller.h b/apps/graph/graph/curve_parameter_controller.h index a1abc63e9..fd7086dfe 100644 --- a/apps/graph/graph/curve_parameter_controller.h +++ b/apps/graph/graph/curve_parameter_controller.h @@ -18,6 +18,7 @@ public: HighlightCell * reusableCell(int index) override; int reusableCellCount() override; void willDisplayCellForIndex(HighlightCell * cell, int index) override; + void viewDidDisappear() override; private: bool shouldDisplayCalculationAndDerivative() const; int cellIndex(int visibleCellIndex) const;