From 38132ffaf53c843a3ed03be5b305702fde8f5a49 Mon Sep 17 00:00:00 2001 From: Ikalco <73481042+ikalco@users.noreply.github.com> Date: Wed, 12 Jun 2024 12:28:52 -0500 Subject: renderer: properly software lock cursors with zoom_factor (#6434) --- src/managers/PointerManager.cpp | 14 ++++++++++++++ src/managers/PointerManager.hpp | 2 ++ 2 files changed, 16 insertions(+) (limited to 'src/managers') diff --git a/src/managers/PointerManager.cpp b/src/managers/PointerManager.cpp index 80a7ee76..bf7b5d0a 100644 --- a/src/managers/PointerManager.cpp +++ b/src/managers/PointerManager.cpp @@ -150,6 +150,20 @@ CPointerManager::CPointerManager() { }); } +void CPointerManager::lockSoftwareAll() { + for (auto& state : monitorStates) + state->softwareLocks++; + + updateCursorBackend(); +} + +void CPointerManager::unlockSoftwareAll() { + for (auto& state : monitorStates) + state->softwareLocks--; + + updateCursorBackend(); +} + void CPointerManager::lockSoftwareForMonitor(SP mon) { auto state = stateFor(mon); state->softwareLocks++; diff --git a/src/managers/PointerManager.hpp b/src/managers/PointerManager.hpp index b71a79c3..1e386797 100644 --- a/src/managers/PointerManager.hpp +++ b/src/managers/PointerManager.hpp @@ -43,6 +43,8 @@ class CPointerManager { void lockSoftwareForMonitor(SP pMonitor); void unlockSoftwareForMonitor(SP pMonitor); + void lockSoftwareAll(); + void unlockSoftwareAll(); void renderSoftwareCursorsFor(SP pMonitor, timespec* now, CRegion& damage /* logical */, std::optional overridePos = {} /* monitor-local */); -- cgit v1.2.3