summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2023-09-30 13:06:25 +0100
committervaxerski <43317083+vaxerski@users.noreply.github.com>2023-09-30 13:12:01 +0100
commitb8f8912db260c9fbe42afdba59f30f9e9546eef4 (patch)
tree115ab57f10fcd6a575db2d2ae44b51bd73c80d72 /src/render/Renderer.cpp
parent86e8ed038f5b195cdf2548bc469f8f8bbc0caca8 (diff)
renderer: lock software cursors while tearing
Diffstat (limited to 'src/render/Renderer.cpp')
-rw-r--r--src/render/Renderer.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp
index fefab56b..2e35efa8 100644
--- a/src/render/Renderer.cpp
+++ b/src/render/Renderer.cpp
@@ -884,6 +884,8 @@ void CHyprRenderer::renderMonitor(CMonitor* pMonitor) {
}
}
+ pMonitor->activelyTearing = shouldTear;
+
EMIT_HOOK_EVENT("preRender", pMonitor);
timespec now;
@@ -1023,6 +1025,7 @@ void CHyprRenderer::renderMonitor(CMonitor* pMonitor) {
TRACY_GPU_ZONE("RenderCursor");
bool lockSoftware = pMonitor == g_pCompositor->getMonitorFromCursor() && *PZOOMFACTOR != 1.f;
+ lockSoftware = lockSoftware || std::ranges::any_of(g_pCompositor->m_vMonitors, [](const auto& m) { return m->activelyTearing; });
if (lockSoftware) {
wlr_output_lock_software_cursors(pMonitor->output, true);