From 50e106f2e60785126331eaf2a9c43595a2a768d4 Mon Sep 17 00:00:00 2001 From: vaxerski Date: Sun, 8 Jan 2023 14:46:45 +0100 Subject: [PATCH] expand region twice in blur damage we need to update possible blurriness above --- src/events/Monitors.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/events/Monitors.cpp b/src/events/Monitors.cpp index 8c529c1b..a631b0a1 100644 --- a/src/events/Monitors.cpp +++ b/src/events/Monitors.cpp @@ -216,10 +216,12 @@ void Events::listener_monitorFrame(void* owner, void* data) { static auto* const PBLURPASSES = &g_pConfigManager->getConfigValuePtr("decoration:blur_passes")->intValue; const auto BLURRADIUS = *PBLURSIZE * pow(2, *PBLURPASSES); // is this 2^pass? I don't know but it works... I think. - pixman_region32_copy(&g_pHyprOpenGL->m_rOriginalDamageRegion, &damage); - // now, prep the damage, get the extended damage region wlr_region_expand(&damage, &damage, BLURRADIUS); // expand for proper blurring + + pixman_region32_copy(&g_pHyprOpenGL->m_rOriginalDamageRegion, &damage); + + wlr_region_expand(&damage, &damage, BLURRADIUS); // expand for proper blurring 2 } else { pixman_region32_copy(&g_pHyprOpenGL->m_rOriginalDamageRegion, &damage); } @@ -280,7 +282,7 @@ void Events::listener_monitorFrame(void* owner, void* data) { pixman_region32_init(&frameDamage); const auto TRANSFORM = wlr_output_transform_invert(PMONITOR->output->transform); - wlr_region_transform(&frameDamage, &PMONITOR->damage->current, TRANSFORM, (int)PMONITOR->vecTransformedSize.x, (int)PMONITOR->vecTransformedSize.y); + wlr_region_transform(&frameDamage, &g_pHyprOpenGL->m_rOriginalDamageRegion, TRANSFORM, (int)PMONITOR->vecTransformedSize.x, (int)PMONITOR->vecTransformedSize.y); if (*PDAMAGETRACKINGMODE == DAMAGE_TRACKING_NONE || *PDAMAGETRACKINGMODE == DAMAGE_TRACKING_MONITOR) pixman_region32_union_rect(&frameDamage, &frameDamage, 0, 0, (int)PMONITOR->vecTransformedSize.x, (int)PMONITOR->vecTransformedSize.y);