From 04a08087a760c2cd0bd82ae36f429129e7aab9c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Mon, 22 Oct 2018 14:41:57 +0200 Subject: [PATCH] [apps] Fix selection on VariableBoxController when removing rows --- apps/variable_box_controller.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/variable_box_controller.cpp b/apps/variable_box_controller.cpp index 8a0711e99..61eae5507 100644 --- a/apps/variable_box_controller.cpp +++ b/apps/variable_box_controller.cpp @@ -47,6 +47,8 @@ bool VariableBoxController::handleEvent(Ion::Events::Event event) { if (event == Ion::Events::Backspace && m_currentPage != Page::RootMenu && !isDisplayingEmptyController()) { Storage::Record record = recordAtIndex(selectedRow()); record.destroy(); + int newSelectedRow = selectedRow() >= numberOfRows() ? numberOfRows()-1 : selectedRow(); + selectCellAtLocation(selectedColumn(), newSelectedRow); m_selectableTableView.reloadData(); displayEmptyController(); return true; @@ -155,6 +157,7 @@ bool VariableBoxController::selectLeaf(int selectedRow) { /* We do not want to handle OK/EXE events in that case. */ return false; } + assert(selectedRow >= 0 && selectedRow < numberOfRows()); m_selectableTableView.deselectTable(); Storage::Record record = recordAtIndex(selectedRow); char truncatedName[SymbolAbstract::k_maxNameSize];