summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2023-10-25 22:20:58 +0100
committerVaxry <vaxry@vaxry.net>2023-10-25 22:20:58 +0100
commit5b0dc779ed91b08a9b0bfafb97b28f927dfdda0c (patch)
tree0d7eec1d16d52664b3524a8be9794a705f9c5a0c /src/render/Renderer.cpp
parent8991be671fb231ebe268352fe9cc883911b066c2 (diff)
renderer: blur properly behind small surfaces
Diffstat (limited to 'src/render/Renderer.cpp')
-rw-r--r--src/render/Renderer.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp
index f5a79bdf..290e5171 100644
--- a/src/render/Renderer.cpp
+++ b/src/render/Renderer.cpp
@@ -431,6 +431,12 @@ void CHyprRenderer::renderWindow(CWindow* pWindow, CMonitor* pMonitor, timespec*
if ((pWindow->m_bIsX11 && *PXWLUSENN) || pWindow->m_sAdditionalConfigData.nearestNeighbor.toUnderlying())
g_pHyprOpenGL->m_RenderData.useNearestNeighbor = true;
+ if (pWindow->m_pWLSurface.small() && !pWindow->m_pWLSurface.m_bFillIgnoreSmall && renderdata.blur) {
+ wlr_box wb = {renderdata.x, renderdata.y, renderdata.w, renderdata.h};
+ g_pHyprOpenGL->renderRectWithBlur(&wb, CColor(0, 0, 0, 0), renderdata.dontRound ? 0 : renderdata.rounding - 1);
+ renderdata.blur = false;
+ }
+
wlr_surface_for_each_surface(pWindow->m_pWLSurface.wlr(), renderSurface, &renderdata);
g_pHyprOpenGL->m_RenderData.useNearestNeighbor = false;