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
This commit is contained in:
Lucas Reis
2024-06-19 10:24:28 -04:00
committed by GitHub
parent fb15b7aa2a
commit 20a465f69d
3 changed files with 30 additions and 0 deletions

View File

@@ -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--;