diff options
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")) |
