summaryrefslogtreecommitdiff
path: root/src/managers/ANRManager.cpp
diff options
context:
space:
mode:
authorLuke Barkess <57995669+Brumus14@users.noreply.github.com>2025-12-14 17:19:35 +0000
committerGitHub <noreply@github.com>2025-12-14 17:19:35 +0000
commit6535ff07c9f16dbd4928f1ef8a12a939db59f7b5 (patch)
tree917747ade2f79ca6e4875363991709c799e282c0 /src/managers/ANRManager.cpp
parent05ccbb2f2dc3121a48e9c1925357039b27d22a92 (diff)
anr: don't create for anr dialogs (#12601)
Diffstat (limited to 'src/managers/ANRManager.cpp')
-rw-r--r--src/managers/ANRManager.cpp9
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);