summaryrefslogtreecommitdiff
path: root/src/managers
diff options
context:
space:
mode:
Diffstat (limited to 'src/managers')
-rw-r--r--src/managers/CursorManager.cpp3
-rw-r--r--src/managers/PointerManager.hpp5
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;