From 0302bfdc2207f9b5482fb07aa6052e7f6cb237ca Mon Sep 17 00:00:00 2001 From: Vaxry Date: Sun, 27 Apr 2025 00:03:32 +0100 Subject: async: add Promise and use it for AsyncDialogBox --- src/managers/ANRManager.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/managers/ANRManager.cpp') diff --git a/src/managers/ANRManager.cpp b/src/managers/ANRManager.cpp index 69d127a7..48b9a6db 100644 --- a/src/managers/ANRManager.cpp +++ b/src/managers/ANRManager.cpp @@ -169,7 +169,14 @@ void CANRManager::SANRData::runDialog(const std::string& title, const std::strin appClass.empty() ? "unknown" : appClass), std::vector{"Terminate", "Wait"}); - dialogBox->open([dialogWmPID, this](std::string result) { + dialogBox->open()->then([dialogWmPID, this](SP> r) { + if (r->hasError()) { + Debug::log(ERR, "CANRManager::SANRData::runDialog: error spawning dialog"); + return; + } + + const auto& result = r->result(); + if (result.starts_with("Terminate")) ::kill(dialogWmPID, SIGKILL); else if (result.starts_with("Wait")) -- cgit v1.2.3