From e5e19554e626b8645cb8f52ed0767d654f41b73d Mon Sep 17 00:00:00 2001 From: LunaMoo Date: Mon, 2 Apr 2018 16:31:26 +0200 Subject: [PATCH] Add "--pause-menu-exit" option. --- Core/Config.h | 1 + UI/NativeApp.cpp | 2 ++ UI/PauseScreen.cpp | 13 +++++++++++-- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Core/Config.h b/Core/Config.h index edc88e4a1..e22e78f50 100644 --- a/Core/Config.h +++ b/Core/Config.h @@ -116,6 +116,7 @@ public: #if !defined(MOBILE_DEVICE) bool bPauseExitsEmulator; #endif + bool bPauseMenuExitsEmulator; bool bPS3Controller; // Core diff --git a/UI/NativeApp.cpp b/UI/NativeApp.cpp index 7b7fc40e4..31105d96f 100644 --- a/UI/NativeApp.cpp +++ b/UI/NativeApp.cpp @@ -434,6 +434,8 @@ void NativeInit(int argc, const char *argv[], const char *savegame_dir, const ch if (!strncmp(argv[i], "--escape-exit", strlen("--escape-exit"))) g_Config.bPauseExitsEmulator = true; #endif + if (!strncmp(argv[i], "--pause-menu-exit", strlen("--pause-menu-exit"))) + g_Config.bPauseMenuExitsEmulator = true; break; } } else { diff --git a/UI/PauseScreen.cpp b/UI/PauseScreen.cpp index 160cb2c75..b3622fc90 100644 --- a/UI/PauseScreen.cpp +++ b/UI/PauseScreen.cpp @@ -349,7 +349,12 @@ void GamePauseScreen::CreateViews() { rightColumnItems->Add(new Choice(rp->T("ReportButton", "Report Feedback")))->OnClick.Handle(this, &GamePauseScreen::OnReportFeedback); } rightColumnItems->Add(new Spacer(25.0)); - rightColumnItems->Add(new Choice(pa->T("Exit to menu")))->OnClick.Handle(this, &GamePauseScreen::OnExitToMenu); + if (g_Config.bPauseMenuExitsEmulator) { + I18NCategory *mm = GetI18NCategory("MainMenu"); + rightColumnItems->Add(new Choice(mm->T("Exit")))->OnClick.Handle(this, &GamePauseScreen::OnExitToMenu); + } else { + rightColumnItems->Add(new Choice(pa->T("Exit to menu")))->OnClick.Handle(this, &GamePauseScreen::OnExitToMenu); + } } UI::EventReturn GamePauseScreen::OnGameSettings(UI::EventParams &e) { @@ -392,7 +397,11 @@ UI::EventReturn GamePauseScreen::OnScreenshotClicked(UI::EventParams &e) { } UI::EventReturn GamePauseScreen::OnExitToMenu(UI::EventParams &e) { - TriggerFinish(DR_OK); + if (g_Config.bPauseMenuExitsEmulator) { + System_SendMessage("finish", ""); + } else { + TriggerFinish(DR_OK); + } return UI::EVENT_DONE; }