diff --git a/apps/calculation/edit_expression_controller.cpp b/apps/calculation/edit_expression_controller.cpp index 992a3dee8..41a63a854 100644 --- a/apps/calculation/edit_expression_controller.cpp +++ b/apps/calculation/edit_expression_controller.cpp @@ -53,8 +53,6 @@ void EditExpressionController::insertTextBody(const char * text) { } void EditExpressionController::didBecomeFirstResponder() { - int lastRow = m_calculationStore->numberOfCalculations() > 0 ? m_calculationStore->numberOfCalculations()-1 : 0; - m_historyController->scrollToCell(0, lastRow); m_contentView.expressionField()->setEditing(true, false); Container::activeApp()->setFirstResponder(m_contentView.expressionField()); } diff --git a/apps/calculation/history_controller.cpp b/apps/calculation/history_controller.cpp index b3fb5b2ce..d96789e4c 100644 --- a/apps/calculation/history_controller.cpp +++ b/apps/calculation/history_controller.cpp @@ -18,6 +18,12 @@ HistoryController::HistoryController(Responder * parentResponder, CalculationSto } } +void HistoryController::viewWillAppear() { + int rowsCount = numberOfRows(); + int lastRow = (rowsCount > 0) * (rowsCount - 1); + selectCellAtLocation(0, lastRow); +} + void HistoryController::reload() { m_selectableTableView.reloadData(); /* TODO @@ -168,10 +174,6 @@ int HistoryController::typeAtLocation(int i, int j) { return 0; } -void HistoryController::scrollToCell(int i, int j) { - m_selectableTableView.scrollToCell(i, j); -} - HistoryViewCell * HistoryController::historyViewCellDidChangeSelection() { /* Update the whole table as the height of the selected cell row might have * changed. */ diff --git a/apps/calculation/history_controller.h b/apps/calculation/history_controller.h index f75c20015..06d108c8d 100644 --- a/apps/calculation/history_controller.h +++ b/apps/calculation/history_controller.h @@ -14,6 +14,7 @@ class HistoryController : public ViewController, public ListViewDataSource, publ public: HistoryController(Responder * parentResponder, CalculationStore * calculationStore); View * view() override { return &m_selectableTableView; } + void viewWillAppear() override; bool handleEvent(Ion::Events::Event event) override; void didBecomeFirstResponder() override; void willExitResponderChain(Responder * nextFirstResponder) override; @@ -25,7 +26,6 @@ public: KDCoordinate rowHeight(int j) override; int typeAtLocation(int i, int j) override; void tableViewDidChangeSelection(SelectableTableView * t, int previousSelectedCellX, int previousSelectedCellY, bool withinTemporarySelection = false) override; - void scrollToCell(int i, int j); private: int storeIndex(int i) { return numberOfRows() - i - 1; } Shared::ExpiringPointer calculationAtIndex(int i);