diff --git a/apps/shared/store_controller.cpp b/apps/shared/store_controller.cpp index 7cb3ed70a..1aad3d9c2 100644 --- a/apps/shared/store_controller.cpp +++ b/apps/shared/store_controller.cpp @@ -92,6 +92,7 @@ bool StoreController::handleEvent(Ion::Events::Event event) { } m_store->deletePairAtIndex(selectedRow()-1); selectableTableView()->reloadData(); + selectableTableView()->selectCellAtLocation(selectedColumn(), selectedRow()); return true; } return false; diff --git a/apps/shared/values_controller.cpp b/apps/shared/values_controller.cpp index 4e256d2e3..da91be8f0 100644 --- a/apps/shared/values_controller.cpp +++ b/apps/shared/values_controller.cpp @@ -56,6 +56,7 @@ bool ValuesController::handleEvent(Ion::Events::Event event) { (selectedRow() < numberOfRows()-1 || m_interval->numberOfElements() == Interval::k_maxNumberOfElements)) { m_interval->deleteElementAtIndex(selectedRow()-1); selectableTableView()->reloadData(); + selectableTableView()->selectCellAtLocation(selectedColumn(), selectedRow()); return true; } if (event == Ion::Events::OK || event == Ion::Events::EXE) { diff --git a/escher/src/table_view.cpp b/escher/src/table_view.cpp index 34f8de0eb..90be9e100 100644 --- a/escher/src/table_view.cpp +++ b/escher/src/table_view.cpp @@ -111,6 +111,12 @@ void TableView::ContentView::scrollToCell(int x, int y) const { // Let's scroll the tableView to put that cell on the bottom (while keeping the bottom margin) contentOffsetY = m_dataSource->cumulatedHeightFromIndex(y+1)+2*m_verticalCellOverlapping - m_tableView->maxContentHeightDisplayableWithoutScrolling(); } + if (m_tableView->maxContentHeightDisplayableWithoutScrolling() > height()-contentOffsetY) { + contentOffsetY = height() > m_tableView->maxContentHeightDisplayableWithoutScrolling() ? height()-m_tableView->maxContentHeightDisplayableWithoutScrolling() : 0; + } + if (m_tableView->maxContentWidthDisplayableWithoutScrolling() > width()-contentOffsetX) { + contentOffsetX = width() > m_tableView->maxContentWidthDisplayableWithoutScrolling() ? width()-m_tableView->maxContentWidthDisplayableWithoutScrolling() : 0; + } m_tableView->setContentOffset(KDPoint(contentOffsetX, contentOffsetY)); }