diff options
| author | Vaxry <vaxry@vaxry.net> | 2025-04-27 00:03:32 +0100 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2025-04-27 13:28:06 +0100 |
| commit | 0302bfdc2207f9b5482fb07aa6052e7f6cb237ca (patch) | |
| tree | c2039f2d4f01327b23b39493bc03b90d195fa6d3 /src/managers/ANRManager.cpp | |
| parent | 4f868a1f3c1edfc1f5998f7d21e46e7c23aeb02f (diff) | |
async: add Promise and use it for AsyncDialogBox
Diffstat (limited to 'src/managers/ANRManager.cpp')
| -rw-r--r-- | src/managers/ANRManager.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
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<std::string>{"Terminate", "Wait"}); - dialogBox->open([dialogWmPID, this](std::string result) { + dialogBox->open()->then([dialogWmPID, this](SP<CPromiseResult<std::string>> 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")) |
