diff --git a/src/Compositor.cpp b/src/Compositor.cpp index 37e579cb..8e3ec390 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -241,6 +241,8 @@ void CCompositor::cleanup() { if (!m_sWLDisplay || m_bIsShuttingDown) return; + m_bIsShuttingDown = true; + m_pLastFocus = nullptr; m_pLastWindow = nullptr; @@ -256,8 +258,6 @@ void CCompositor::cleanup() { m_vWorkspaces.clear(); m_vWindows.clear(); - m_bIsShuttingDown = true; - for (auto& m : m_vMonitors) { g_pHyprOpenGL->destroyMonitorResources(m.get()); diff --git a/src/managers/input/InputManager.cpp b/src/managers/input/InputManager.cpp index 9201da24..64963041 100644 --- a/src/managers/input/InputManager.cpp +++ b/src/managers/input/InputManager.cpp @@ -39,7 +39,7 @@ void CInputManager::mouseMoveUnified(uint32_t time, bool refocus) { m_pFoundLSToFocus = nullptr; m_pFoundWindowToFocus = nullptr; - if (!g_pCompositor->m_bReadyToProcess) + if (!g_pCompositor->m_bReadyToProcess || g_pCompositor->m_bIsShuttingDown) return; if (!g_pCompositor->m_sSeat.mouse) {