diff --git a/UI/MiscScreens.cpp b/UI/MiscScreens.cpp index cb2af940c2..15550055e6 100644 --- a/UI/MiscScreens.cpp +++ b/UI/MiscScreens.cpp @@ -275,22 +275,25 @@ void PromptScreen::CreateViews() { Choice *yesButton = rightColumnItems->Add(new Choice(yesButtonText_)); yesButton->OnClick.Handle(this, &PromptScreen::OnYes); root_->SetDefaultFocusView(yesButton); - if (noButtonText_ != "") + if (!noButtonText_.empty()) rightColumnItems->Add(new Choice(noButtonText_))->OnClick.Handle(this, &PromptScreen::OnNo); } UI::EventReturn PromptScreen::OnYes(UI::EventParams &e) { - callback_(true); TriggerFinish(DR_OK); return UI::EVENT_DONE; } UI::EventReturn PromptScreen::OnNo(UI::EventParams &e) { - callback_(false); TriggerFinish(DR_CANCEL); return UI::EVENT_DONE; } +void PromptScreen::TriggerFinish(DialogResult result) { + callback_(result == DR_OK || result == DR_YES); + UIDialogScreenWithBackground::TriggerFinish(result); +} + PostProcScreen::PostProcScreen(const std::string &title) : ListPopupScreen(title) { I18NCategory *ps = GetI18NCategory("PostShaders"); ReloadAllPostShaderInfo(); diff --git a/UI/MiscScreens.h b/UI/MiscScreens.h index 2fb11bd67b..4c08772a0a 100644 --- a/UI/MiscScreens.h +++ b/UI/MiscScreens.h @@ -78,6 +78,8 @@ public: void CreateViews() override; + void TriggerFinish(DialogResult result) override; + private: UI::EventReturn OnYes(UI::EventParams &e); UI::EventReturn OnNo(UI::EventParams &e);