diff options
| author | Lucas Reis <lucas.reis091997@gmail.com> | 2024-06-19 10:24:28 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-19 16:24:28 +0200 |
| commit | 20a465f69d342c5caead27df696d228492ea02e8 (patch) | |
| tree | 9dcb0bb9dad50ad3e148b14b372fda799fc38ef0 /src/managers/PointerManager.cpp | |
| parent | fb15b7aa2a9bba0f0693f84d0c65d386942583f8 (diff) | |
pointer: use software rendering when monitor is mirrored (#6587)
* pointer_manager: add lock/unlock software wrappers that receive the raw pointer
* monitor: lock/unlock software pointer rendering when adding/removing mirrored screens
* use relative path in includes
Diffstat (limited to 'src/managers/PointerManager.cpp')
| -rw-r--r-- | src/managers/PointerManager.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/managers/PointerManager.cpp b/src/managers/PointerManager.cpp index 05059669..d3da5eff 100644 --- a/src/managers/PointerManager.cpp +++ b/src/managers/PointerManager.cpp @@ -164,6 +164,15 @@ void CPointerManager::unlockSoftwareAll() { updateCursorBackend(); } +void CPointerManager::lockSoftwareForMonitor(CMonitor* Monitor) { + for (auto& m : g_pCompositor->m_vMonitors) { + if (m->ID == Monitor->ID) { + lockSoftwareForMonitor(m); + return; + } + } +} + void CPointerManager::lockSoftwareForMonitor(SP<CMonitor> mon) { auto state = stateFor(mon); state->softwareLocks++; @@ -172,6 +181,15 @@ void CPointerManager::lockSoftwareForMonitor(SP<CMonitor> mon) { updateCursorBackend(); } +void CPointerManager::unlockSoftwareForMonitor(CMonitor* Monitor) { + for (auto& m : g_pCompositor->m_vMonitors) { + if (m->ID == Monitor->ID) { + unlockSoftwareForMonitor(m); + return; + } + } +} + void CPointerManager::unlockSoftwareForMonitor(SP<CMonitor> mon) { auto state = stateFor(mon); state->softwareLocks--; |
