diff --git a/UI/ControlMappingScreen.cpp b/UI/ControlMappingScreen.cpp index fa66b4857e..4d8cfc5b20 100644 --- a/UI/ControlMappingScreen.cpp +++ b/UI/ControlMappingScreen.cpp @@ -216,6 +216,10 @@ void ControlMappingScreen::sendMessage(const char *message, const char *value) { if (!strcmp(message, "language")) { screenManager()->RecreateAllViews(); } + if (!strcmp(message, "settings")) { + UpdateUIState(UISTATE_MENU); + screenManager()->finishDialog(this, DR_OK); + } } UI::EventReturn ControlMappingScreen::OnBack(UI::EventParams &e) { diff --git a/UI/GameSettingsScreen.cpp b/UI/GameSettingsScreen.cpp index 30d8abd01e..1587b82306 100644 --- a/UI/GameSettingsScreen.cpp +++ b/UI/GameSettingsScreen.cpp @@ -336,6 +336,10 @@ void GameSettingsScreen::sendMessage(const char *message, const char *value) { if (!strcmp(message, "language")) { screenManager()->RecreateAllViews(); } + if (!strcmp(message, "control mapping")) { + UpdateUIState(UISTATE_MENU); + screenManager()->push(new ControlMappingScreen()); + } } UI::EventReturn GameSettingsScreen::OnDownloadPlugin(UI::EventParams &e) { diff --git a/UI/MainScreen.cpp b/UI/MainScreen.cpp index fa1baae86e..317a2b61f1 100644 --- a/UI/MainScreen.cpp +++ b/UI/MainScreen.cpp @@ -560,6 +560,7 @@ void MainScreen::sendMessage(const char *message, const char *value) { } if (!strcmp(message, "control mapping")) { UpdateUIState(UISTATE_MENU); + screenManager()->push(new GameSettingsScreen("")); screenManager()->push(new ControlMappingScreen()); } if (!strcmp(message, "settings")) {