diff --git a/apps/sequence/list/list_controller.cpp b/apps/sequence/list/list_controller.cpp index 6c684f93c..8ad3159d0 100644 --- a/apps/sequence/list/list_controller.cpp +++ b/apps/sequence/list/list_controller.cpp @@ -5,6 +5,8 @@ using namespace Shared; using namespace Poincare; +//TODO static inline KDCoordinate max(KDCoordinate c1, KDCoordinate c2) { return c1 > c2 ? c1 : c2; } + namespace Sequence { ListController::ListController(Responder * parentResponder, SequenceStore * sequenceStore, ButtonRowController * header, ButtonRowController * footer) : @@ -56,7 +58,7 @@ KDCoordinate ListController::expressionRowHeight(int j) { return Metric::StoreRowHeight; } Sequence * sequence = m_sequenceStore->modelAtIndex(modelIndexForRow(j)); - KDCoordinate defaultHeight = sequence->type() == Sequence::Type::Explicit ? Metric::StoreRowHeight : k_emptySubRowHeight; + KDCoordinate defaultHeight = 2*k_expressionCellVerticalMargin + (sequence->type() == Sequence::Type::Explicit ? Metric::StoreRowHeight : k_emptySubRowHeight); ExpressionLayout * layout = sequence->layout(); if (sequenceDefinitionForRow(j) == 1) { layout = sequence->firstInitialConditionLayout(); @@ -67,8 +69,8 @@ KDCoordinate ListController::expressionRowHeight(int j) { if (layout == nullptr) { return defaultHeight; } - KDCoordinate sequenceSize = layout->size().height(); - return sequenceSize + defaultHeight - KDText::charSize().height(); + KDCoordinate sequenceHeight = layout->size().height(); + return max(defaultHeight, sequenceHeight + 2*k_expressionCellVerticalMargin); } void ListController::willDisplayCellAtLocation(HighlightCell * cell, int i, int j) { diff --git a/apps/sequence/list/list_controller.h b/apps/sequence/list/list_controller.h index 3aa683ec9..29272f59f 100644 --- a/apps/sequence/list/list_controller.h +++ b/apps/sequence/list/list_controller.h @@ -26,6 +26,7 @@ public: void selectPreviousNewSequenceCell(); void editExpression(Sequence * sequence, int sequenceDefinitionIndex, Ion::Events::Event event); private: + static constexpr KDCoordinate k_expressionCellVerticalMargin = 3; Toolbox * toolboxForSender(Responder * sender); Shared::TextFieldDelegateApp * textFieldDelegateApp() override; Shared::ExpressionFieldDelegateApp * expressionFieldDelegateApp() override;