diff options
Diffstat (limited to 'src/managers')
| -rw-r--r-- | src/managers/CursorManager.cpp | 3 | ||||
| -rw-r--r-- | src/managers/PointerManager.hpp | 5 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/managers/CursorManager.cpp b/src/managers/CursorManager.cpp index cb43f0b9..e3ebce80 100644 --- a/src/managers/CursorManager.cpp +++ b/src/managers/CursorManager.cpp @@ -58,6 +58,9 @@ CCursorManager::CCursorManager() { CCursorManager::~CCursorManager() { if (m_pWLRXCursorMgr) wlr_xcursor_manager_destroy(m_pWLRXCursorMgr); + + if (m_pAnimationTimer) + wl_event_source_remove(m_pAnimationTimer); } void CCursorManager::dropBufferRef(CCursorManager::CCursorBuffer* ref) { diff --git a/src/managers/PointerManager.hpp b/src/managers/PointerManager.hpp index b6cb0c7a..db9f27e7 100644 --- a/src/managers/PointerManager.hpp +++ b/src/managers/PointerManager.hpp @@ -146,6 +146,11 @@ class CPointerManager { struct SMonitorPointerState { SMonitorPointerState(SP<CMonitor> m) : monitor(m) {} + ~SMonitorPointerState() { + if (cursorFrontBuffer) + wlr_buffer_unlock(cursorFrontBuffer); + } + WP<CMonitor> monitor; int softwareLocks = 0; |
