diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2023-02-10 22:03:23 +0000 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2023-02-10 22:03:28 +0000 |
| commit | bda8208aaa3d7eb9f14d49691b919f8f2e9f5594 (patch) | |
| tree | 133e2c773250c978aa4ae41cbe274dda63130de5 /src/render/Renderer.cpp | |
| parent | 42f4664022352c6432271916b40d24c40a4bfce1 (diff) | |
render lockscreen in fullscreenworkspace
Diffstat (limited to 'src/render/Renderer.cpp')
| -rw-r--r-- | src/render/Renderer.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index c813b357..9efb07c8 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -212,6 +212,18 @@ void CHyprRenderer::renderWorkspaceWithFullscreenWindow(CMonitor* pMonitor, CWor // if correct monitor draw hyprerror if (pMonitor == g_pCompositor->m_vMonitors.front().get()) g_pHyprError->draw(); + + if (g_pSessionLockManager->isSessionLocked()) { + const auto PSLS = g_pSessionLockManager->getSessionLockSurfaceForMonitor(pMonitor->ID); + + if (!PSLS) { + // locked with no surface, fill with red + wlr_box boxe = {0, 0, INT16_MAX, INT16_MAX}; + g_pHyprOpenGL->renderRect(&boxe, CColor(1.0, 0.2, 0.2, 1.0)); + } else { + renderSessionLockSurface(PSLS, pMonitor, time); + } + } } void CHyprRenderer::renderWindow(CWindow* pWindow, CMonitor* pMonitor, timespec* time, bool decorate, eRenderPassMode mode, bool ignorePosition, bool ignoreAllGeometry) { |
