diff --git a/cockatrice/src/interface/widgets/deck_editor/deck_state_manager.cpp b/cockatrice/src/interface/widgets/deck_editor/deck_state_manager.cpp index 0e82fe597..09254608e 100644 --- a/cockatrice/src/interface/widgets/deck_editor/deck_state_manager.cpp +++ b/cockatrice/src/interface/widgets/deck_editor/deck_state_manager.cpp @@ -207,11 +207,13 @@ QModelIndex DeckStateManager::decrementCard(const ExactCard &card, const QString return {}; } - if (idx.isValid()) { - emit focusIndexChanged(idx, true); + // old index is no longer safe since rows could have been removed + QModelIndex newIdx = deckListModel->findCard(card.getName(), zoneName, providerId, collectorNumber); + if (newIdx.isValid()) { + emit focusIndexChanged(newIdx, true); } - return idx; + return newIdx; } static bool doSwapCard(DeckListModel *model,