diff --git a/apps/home/controller.cpp b/apps/home/controller.cpp index e96f9c861..5c4f35405 100644 --- a/apps/home/controller.cpp +++ b/apps/home/controller.cpp @@ -9,7 +9,7 @@ namespace Home { Controller::Controller(Responder * parentResponder, ::AppsContainer * container) : ViewController(parentResponder), m_container(container), - m_selectableTableView(SelectableTableView(this, this)) + m_selectableTableView(SelectableTableView(this, this, 0, 0, 0, 0, this)) { } @@ -75,4 +75,11 @@ int Controller::numberOfIcons() { return m_container->numberOfApps() - 1; } +void Controller::tableViewDidChangeSelection(SelectableTableView * t, int previousSelectedCellX, int previousSelectedCellY) { + int appIndex = (t->selectedRow()*k_numberOfColumns+t->selectedColumn())+1; + if (appIndex >= m_container->numberOfApps()) { + t->selectCellAtLocation(previousSelectedCellX, previousSelectedCellY); + } +} + } diff --git a/apps/home/controller.h b/apps/home/controller.h index 2f1c9902f..b1c0289c5 100644 --- a/apps/home/controller.h +++ b/apps/home/controller.h @@ -8,7 +8,7 @@ class AppsContainer; namespace Home { -class Controller : public ViewController, public SimpleTableViewDataSource { +class Controller : public ViewController, public SimpleTableViewDataSource, public SelectableTableViewDelegate { public: Controller(Responder * parentResponder, ::AppsContainer * container); @@ -24,6 +24,7 @@ public: virtual TableViewCell * reusableCell(int index) override; virtual int reusableCellCount() override; void willDisplayCellAtLocation(TableViewCell * cell, int i, int j) override; + void tableViewDidChangeSelection(SelectableTableView * t, int previousSelectedCellX, int previousSelectedCellY) override; private: int numberOfIcons(); AppsContainer * m_container;