diff options
author | Vaxry <[email protected]> | 2024-11-28 23:51:53 +0000 |
---|---|---|
committer | Vaxry <[email protected]> | 2024-11-28 23:51:59 +0000 |
commit | 8f83d29f00bfa89d1e8fe94b4dda98fe898b6b0e (patch) | |
tree | cd16904e242f49d63d3c1f5246957aa01e6b34d6 /src | |
parent | 22bf2853e6271932f073961f3dbeb0f9ff48493e (diff) | |
download | Hyprland-8f83d29f00bfa89d1e8fe94b4dda98fe898b6b0e.tar.gz Hyprland-8f83d29f00bfa89d1e8fe94b4dda98fe898b6b0e.zip |
renderer: restore discard mode after IME render pass
ref #8555
Diffstat (limited to 'src')
-rw-r--r-- | src/render/Renderer.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index ca6ceba1..bba133d9 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -859,6 +859,10 @@ void CHyprRenderer::renderIMEPopup(CInputPopup* pPopup, PHLMONITOR pMonitor, tim static auto PBLURIMES = CConfigValue<Hyprlang::INT>("decoration:blur:input_methods"); static auto PBLURIGNOREA = CConfigValue<Hyprlang::FLOAT>("decoration:blur:input_methods_ignorealpha"); + // TODO: make push/pop methods for this. + const auto DM = g_pHyprOpenGL->m_RenderData.discardMode; + const auto DA = g_pHyprOpenGL->m_RenderData.discardOpacity; + renderdata.blur = *PBLURIMES && *PBLUR; if (renderdata.blur) { g_pHyprOpenGL->m_RenderData.discardMode |= DISCARD_ALPHA; @@ -866,6 +870,9 @@ void CHyprRenderer::renderIMEPopup(CInputPopup* pPopup, PHLMONITOR pMonitor, tim } SURF->breadthfirst([](SP<CWLSurfaceResource> s, const Vector2D& offset, void* data) { renderSurface(s, offset.x, offset.y, data); }, &renderdata); + + g_pHyprOpenGL->m_RenderData.discardMode = DM; + g_pHyprOpenGL->m_RenderData.discardOpacity = DA; } void CHyprRenderer::renderSessionLockSurface(SSessionLockSurface* pSurface, PHLMONITOR pMonitor, timespec* time) { |