diff options
| author | Ryan <errornointernet@envs.net> | 2024-11-23 09:29:29 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-23 14:29:29 +0000 |
| commit | 451d7a41fc87529854c4116c96a7c6a46568a1ee (patch) | |
| tree | 1489ca7b9f11cfde13114c25a2c32e3c62f02846 /src/render/Renderer.cpp | |
| parent | 00d6261cc06716eac6bdfc9d4426c3a54597098c (diff) | |
renderer: add option to blur IME popups (#8521)
Diffstat (limited to 'src/render/Renderer.cpp')
| -rw-r--r-- | src/render/Renderer.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index 57490d23..dae62851 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -850,12 +850,21 @@ void CHyprRenderer::renderIMEPopup(CInputPopup* pPopup, PHLMONITOR pMonitor, tim const auto SURF = pPopup->getSurface(); - renderdata.blur = false; renderdata.surface = SURF; renderdata.decorate = false; renderdata.w = SURF->current.size.x; renderdata.h = SURF->current.size.y; + static auto PBLUR = CConfigValue<Hyprlang::INT>("decoration:blur:enabled"); + static auto PBLURIMES = CConfigValue<Hyprlang::INT>("decoration:blur:input_methods"); + static auto PBLURIGNOREA = CConfigValue<Hyprlang::FLOAT>("decoration:blur:input_methods_ignorealpha"); + + renderdata.blur = *PBLURIMES && *PBLUR; + if (renderdata.blur) { + g_pHyprOpenGL->m_RenderData.discardMode |= DISCARD_ALPHA; + g_pHyprOpenGL->m_RenderData.discardOpacity = *PBLURIGNOREA; + } + SURF->breadthfirst([](SP<CWLSurfaceResource> s, const Vector2D& offset, void* data) { renderSurface(s, offset.x, offset.y, data); }, &renderdata); } |
