From f4b148df1e2d8edc96bd878a4cfde32ca6515ac8 Mon Sep 17 00:00:00 2001 From: Vaxry <43317083+vaxerski@users.noreply.github.com> Date: Fri, 21 Feb 2025 21:26:53 +0100 Subject: anr: add xwayland support (#9456) Adds XWayland support to ANR dialogs --- src/managers/ANRManager.hpp | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'src/managers/ANRManager.hpp') diff --git a/src/managers/ANRManager.hpp b/src/managers/ANRManager.hpp index 7d67e872..26319776 100644 --- a/src/managers/ANRManager.hpp +++ b/src/managers/ANRManager.hpp @@ -5,20 +5,22 @@ #include #include #include -#include #include "./eventLoop/EventLoopTimer.hpp" #include "../helpers/signal/Signal.hpp" #include #include +#include class CXDGWMBase; +class CXWaylandSurface; class CANRManager { public: CANRManager(); void onResponse(SP wmBase); - bool isNotResponding(SP wmBase); + void onResponse(SP xwaylandSurface); + bool isNotResponding(PHLWINDOW pWindow); private: bool m_active = false; @@ -27,8 +29,12 @@ class CANRManager { void onTick(); struct SANRData { + SANRData(PHLWINDOW pWindow); ~SANRData(); + WP xwaylandSurface; + WP xdgBase; + int missedResponses = 0; std::thread dialogThread; SP dialogProc; @@ -38,9 +44,19 @@ class CANRManager { void runDialog(const std::string& title, const std::string& appName, const std::string appClass, pid_t dialogWmPID); bool isThreadRunning(); void killDialog() const; + bool isDefunct() const; + bool fitsWindow(PHLWINDOW pWindow) const; + pid_t getPid() const; + void ping(); }; - std::map, SP> m_data; + void onResponse(SP data); + bool isNotResponding(SP data); + SP dataFor(PHLWINDOW pWindow); + SP dataFor(SP wmBase); + SP dataFor(SP pXwaylandSurface); + + std::vector> m_data; }; inline UP g_pANRManager; \ No newline at end of file -- cgit v1.2.3