summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2023-02-10 22:03:23 +0000
committervaxerski <43317083+vaxerski@users.noreply.github.com>2023-02-10 22:03:28 +0000
commitbda8208aaa3d7eb9f14d49691b919f8f2e9f5594 (patch)
tree133e2c773250c978aa4ae41cbe274dda63130de5 /src/render/Renderer.cpp
parent42f4664022352c6432271916b40d24c40a4bfce1 (diff)
render lockscreen in fullscreenworkspace
Diffstat (limited to 'src/render/Renderer.cpp')
-rw-r--r--src/render/Renderer.cpp12
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) {