diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp index 08ccb05d..97bdf59a 100644 --- a/src/helpers/Monitor.cpp +++ b/src/helpers/Monitor.cpp @@ -320,9 +320,7 @@ void CMonitor::addDamage(const pixman_region32_t* rg) { if (*PZOOMFACTOR != 1.f && g_pCompositor->getMonitorFromCursor() == this) { wlr_damage_ring_add_whole(&damage); g_pCompositor->scheduleFrameForMonitor(this); - } - - if (wlr_damage_ring_add(&damage, rg)) + } else if (wlr_damage_ring_add(&damage, rg)) g_pCompositor->scheduleFrameForMonitor(this); } diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index cb4a4335..4032e8d7 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -1083,8 +1083,7 @@ void CHyprRenderer::renderMonitor(CMonitor* pMonitor) { clock_gettime(CLOCK_MONOTONIC, &now); // check the damage - CRegion damage; - bool hasChanged = pMonitor->output->needs_frame || pixman_region32_not_empty(&pMonitor->damage.current); + bool hasChanged = pMonitor->output->needs_frame || pixman_region32_not_empty(&pMonitor->damage.current); if (!hasChanged && *PDAMAGETRACKINGMODE != DAMAGE_TRACKING_NONE && pMonitor->forceFullFrames == 0 && damageBlinkCleanup == 0) return; @@ -1100,6 +1099,7 @@ void CHyprRenderer::renderMonitor(CMonitor* pMonitor) { if (UNLOCK_SC) wlr_output_lock_software_cursors(pMonitor->output, true); + CRegion damage; wlr_damage_ring_get_buffer_damage(&pMonitor->damage, m_iLastBufferAge, damage.pixman()); pMonitor->renderingActive = true;