diff --git a/src/helpers/Watchdog.cpp b/src/helpers/Watchdog.cpp index afb8a946..b9f654da 100644 --- a/src/helpers/Watchdog.cpp +++ b/src/helpers/Watchdog.cpp @@ -7,7 +7,9 @@ CWatchdog::~CWatchdog() { m_bExitThread = true; m_bNotified = true; m_cvWatchdogCondition.notify_all(); - m_pWatchdog.reset(); + + if (m_pWatchdog && m_pWatchdog->joinable()) + m_pWatchdog->join(); } CWatchdog::CWatchdog() { @@ -33,8 +35,6 @@ CWatchdog::CWatchdog() { m_bNotified = false; } }); - - m_pWatchdog->detach(); } void CWatchdog::startWatching() { diff --git a/src/managers/input/InputManager.cpp b/src/managers/input/InputManager.cpp index 81a46f97..b3621520 100644 --- a/src/managers/input/InputManager.cpp +++ b/src/managers/input/InputManager.cpp @@ -1473,14 +1473,7 @@ void CInputManager::updateCapabilities() { if (h.expired()) continue; - auto cap = h->getCapabilities(); - - if (cap & HID_INPUT_CAPABILITY_KEYBOARD) - caps |= WL_SEAT_CAPABILITY_KEYBOARD; - if (cap & HID_INPUT_CAPABILITY_POINTER) - caps |= WL_SEAT_CAPABILITY_POINTER; - if (cap & HID_INPUT_CAPABILITY_TOUCH) - caps |= WL_SEAT_CAPABILITY_TOUCH; + caps |= h->getCapabilities(); } g_pSeatManager->updateCapabilities(caps); diff --git a/src/protocols/PointerConstraints.cpp b/src/protocols/PointerConstraints.cpp index a17fa6cd..fd15242d 100644 --- a/src/protocols/PointerConstraints.cpp +++ b/src/protocols/PointerConstraints.cpp @@ -7,8 +7,8 @@ #define LOGM PROTO::constraints->protoLog -CPointerConstraint::CPointerConstraint(SP resource_, SP surf, wl_resource* region_, zwpPointerConstraintsV1Lifetime lifetime) : - resourceL(resource_), locked(true) { +CPointerConstraint::CPointerConstraint(SP resource_, SP surf, wl_resource* region_, zwpPointerConstraintsV1Lifetime lifetime_) : + resourceL(resource_), locked(true), lifetime(lifetime_) { if (!resource_->resource()) return; @@ -46,8 +46,8 @@ CPointerConstraint::CPointerConstraint(SP resource_, SP resource_, SP surf, wl_resource* region_, zwpPointerConstraintsV1Lifetime lifetime) : - resourceC(resource_), locked(false) { +CPointerConstraint::CPointerConstraint(SP resource_, SP surf, wl_resource* region_, zwpPointerConstraintsV1Lifetime lifetime_) : + resourceC(resource_), locked(false), lifetime(lifetime_) { if (!resource_->resource()) return; diff --git a/src/protocols/PointerConstraints.hpp b/src/protocols/PointerConstraints.hpp index faf28b32..35d60632 100644 --- a/src/protocols/PointerConstraints.hpp +++ b/src/protocols/PointerConstraints.hpp @@ -16,8 +16,8 @@ class CWLSurfaceResource; class CPointerConstraint { public: - CPointerConstraint(SP resource_, SP surf, wl_resource* region, zwpPointerConstraintsV1Lifetime lifetime); - CPointerConstraint(SP resource_, SP surf, wl_resource* region, zwpPointerConstraintsV1Lifetime lifetime); + CPointerConstraint(SP resource_, SP surf, wl_resource* region, zwpPointerConstraintsV1Lifetime lifetime_); + CPointerConstraint(SP resource_, SP surf, wl_resource* region, zwpPointerConstraintsV1Lifetime lifetime_); ~CPointerConstraint(); bool good(); diff --git a/src/render/Renderbuffer.cpp b/src/render/Renderbuffer.cpp index 694485c2..b55a921b 100644 --- a/src/render/Renderbuffer.cpp +++ b/src/render/Renderbuffer.cpp @@ -6,7 +6,7 @@ #include CRenderbuffer::~CRenderbuffer() { - if (!g_pCompositor) + if (!g_pCompositor || g_pCompositor->m_bIsShuttingDown || !g_pHyprRenderer) return; g_pHyprRenderer->makeEGLCurrent(); diff --git a/src/render/Texture.cpp b/src/render/Texture.cpp index 5560db97..46c501a0 100644 --- a/src/render/Texture.cpp +++ b/src/render/Texture.cpp @@ -9,7 +9,7 @@ CTexture::CTexture() { } CTexture::~CTexture() { - if (m_bNonOwning) + if (m_bNonOwning || !g_pCompositor || g_pCompositor->m_bIsShuttingDown || !g_pHyprRenderer) return; g_pHyprRenderer->makeEGLCurrent();