diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index ea662867e..f202c2c5e 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -76,7 +76,8 @@ void renderSurface(struct wlr_surface* surface, int x, int y, void* data) { if (RDATA->dontRound) rounding = 0; - const bool CANDISABLEBLEND = RDATA->alpha >= 1.f && rounding == 0 && surface->opaque; + const bool WINDOWOPAQUE = RDATA->pWindow && RDATA->pWindow->m_pWLSurface.wlr() == surface ? RDATA->pWindow->opaque() : false; + const bool CANDISABLEBLEND = RDATA->alpha * RDATA->fadeAlpha >= 1.f && rounding == 0 && (WINDOWOPAQUE || surface->opaque); if (CANDISABLEBLEND) g_pHyprOpenGL->blend(false);