aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorVaxry <[email protected]>2024-11-28 23:51:53 +0000
committerVaxry <[email protected]>2024-11-28 23:51:59 +0000
commit8f83d29f00bfa89d1e8fe94b4dda98fe898b6b0e (patch)
treecd16904e242f49d63d3c1f5246957aa01e6b34d6
parent22bf2853e6271932f073961f3dbeb0f9ff48493e (diff)
downloadHyprland-8f83d29f00bfa89d1e8fe94b4dda98fe898b6b0e.tar.gz
Hyprland-8f83d29f00bfa89d1e8fe94b4dda98fe898b6b0e.zip
renderer: restore discard mode after IME render pass
ref #8555
-rw-r--r--src/render/Renderer.cpp7
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) {