From b8f8912db260c9fbe42afdba59f30f9e9546eef4 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Sat, 30 Sep 2023 13:06:25 +0100 Subject: renderer: lock software cursors while tearing --- src/render/Renderer.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/render/Renderer.cpp') 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); -- cgit v1.2.3