diff options
Diffstat (limited to 'gui/saveload-dialog.cpp')
-rw-r--r-- | gui/saveload-dialog.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/gui/saveload-dialog.cpp b/gui/saveload-dialog.cpp index 4bf23b8974..cbfaaed8dd 100644 --- a/gui/saveload-dialog.cpp +++ b/gui/saveload-dialog.cpp @@ -428,11 +428,13 @@ void SaveLoadChooserSimple::handleCommand(CommandSender *sender, uint32 cmd, uin break; case kChooseCmd: _list->endEditMode(); - if (!_saveList.empty()) { - setResult(_saveList[selItem].getSaveSlot()); - _resultString = _list->getSelectedString(); + if (selItem >= 0) { + if (!_saveList.empty()) { + setResult(_saveList[selItem].getSaveSlot()); + _resultString = _list->getSelectedString(); + } + close(); } - close(); break; case kListSelectionChangedCmd: updateSelection(true); @@ -694,7 +696,13 @@ void SaveLoadChooserSimple::updateSaveList() { colors.push_back(ThemeEngine::kFontColorNormal); } + int selected = _list->getSelected(); _list->setList(saveNames, &colors); + if (selected >= 0 && selected < saveNames.size()) + _list->setSelected(selected); + else + _chooseButton->setEnabled(false); + draw(); } |