diff options
| author | Luke Barkess <57995669+Brumus14@users.noreply.github.com> | 2025-12-14 17:19:35 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-14 17:19:35 +0000 |
| commit | 6535ff07c9f16dbd4928f1ef8a12a939db59f7b5 (patch) | |
| tree | 917747ade2f79ca6e4875363991709c799e282c0 /src/managers/ANRManager.cpp | |
| parent | 05ccbb2f2dc3121a48e9c1925357039b27d22a92 (diff) | |
anr: don't create for anr dialogs (#12601)
Diffstat (limited to 'src/managers/ANRManager.cpp')
| -rw-r--r-- | src/managers/ANRManager.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/managers/ANRManager.cpp b/src/managers/ANRManager.cpp index daab4d0a..db7a245f 100644 --- a/src/managers/ANRManager.cpp +++ b/src/managers/ANRManager.cpp @@ -1,4 +1,5 @@ #include "ANRManager.hpp" + #include "../helpers/fs/FsUtils.hpp" #include "../debug/Log.hpp" #include "../macros.hpp" @@ -29,6 +30,10 @@ CANRManager::CANRManager() { auto window = std::any_cast<PHLWINDOW>(data); for (const auto& d : m_data) { + // Window is ANR dialog + if (d->isRunning() && d->dialogBox->getPID() == window->getPID()) + return; + if (d->fitsWindow(window)) return; } @@ -84,7 +89,7 @@ void CANRManager::onTick() { if (data->missedResponses >= *PANRTHRESHOLD) { if (!data->isRunning() && !data->dialogSaidWait) { - data->runDialog(firstWindow->m_title, firstWindow->m_class, data->getPid()); + data->runDialog(firstWindow->m_title, firstWindow->m_class, data->getPID()); for (const auto& w : g_pCompositor->m_windows) { if (!w->m_isMapped) @@ -240,7 +245,7 @@ bool CANRManager::SANRData::isDefunct() const { return xdgBase.expired() && xwaylandSurface.expired(); } -pid_t CANRManager::SANRData::getPid() const { +pid_t CANRManager::SANRData::getPID() const { if (xdgBase) { pid_t pid = 0; wl_client_get_credentials(xdgBase->client(), &pid, nullptr, nullptr); |
