[apps/home] Avoid selecting unvisible app cell

Change-Id: I2fd3d1f329750e73d60c8f9cee87cba229730afe
This commit is contained in:
Émilie Feral
2016-12-30 10:05:32 +01:00
parent 764f12124b
commit a993c745c1
2 changed files with 10 additions and 2 deletions

View File

@@ -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);
}
}
}

View File

@@ -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;