aboutsummaryrefslogtreecommitdiff
path: root/gui/saveload-dialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gui/saveload-dialog.cpp')
-rw-r--r--gui/saveload-dialog.cpp16
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();
}