summaryrefslogtreecommitdiff
path: root/src/managers/PointerManager.cpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2025-02-15 00:21:50 +0000
committerVaxry <vaxry@vaxry.net>2025-02-15 00:29:27 +0000
commit2f967037aa00c4aecce62222e5e21c1790148eb0 (patch)
treea908acff79e146e970d4fa45b5b0fcaacce2b969 /src/managers/PointerManager.cpp
parent1309b59f2cb5179a4c59c111c35c7feede535eb6 (diff)
config: set no_hw_cursors to auto by default and disable on tearing
when tearing, updates to the overlay plane may be ignored by the kernel. To avoid the cursor being a slideshow, disable hw cursors
Diffstat (limited to 'src/managers/PointerManager.cpp')
-rw-r--r--src/managers/PointerManager.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/managers/PointerManager.cpp b/src/managers/PointerManager.cpp
index 24f2b35d..048719b8 100644
--- a/src/managers/PointerManager.cpp
+++ b/src/managers/PointerManager.cpp
@@ -274,7 +274,7 @@ void CPointerManager::updateCursorBackend() {
continue;
}
- if (state->softwareLocks > 0 || g_pConfigManager->shouldUseSoftwareCursors() || !attemptHardwareCursor(state)) {
+ if (state->softwareLocks > 0 || g_pConfigManager->shouldUseSoftwareCursors(m) || !attemptHardwareCursor(state)) {
Debug::log(TRACE, "Output {} rejected hardware cursors, falling back to sw", m->szName);
state->box = getCursorBoxLogicalForMonitor(state->monitor.lock());
state->hardwareFailed = true;
@@ -737,7 +737,8 @@ void CPointerManager::damageIfSoftware() {
if (mw->monitor.expired() || !mw->monitor->output)
continue;
- if ((mw->softwareLocks > 0 || mw->hardwareFailed || g_pConfigManager->shouldUseSoftwareCursors()) && b.overlaps({mw->monitor->vecPosition, mw->monitor->vecSize})) {
+ if ((mw->softwareLocks > 0 || mw->hardwareFailed || g_pConfigManager->shouldUseSoftwareCursors(mw->monitor.lock())) &&
+ b.overlaps({mw->monitor->vecPosition, mw->monitor->vecSize})) {
g_pHyprRenderer->damageBox(b, mw->monitor->shouldSkipScheduleFrameOnMouseEvent());
break;
}