diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2023-05-13 12:36:36 +0100 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2023-05-13 12:36:36 +0100 |
| commit | 896a78aaa0bb2e4d4f197ed1286c4f030dbaef5f (patch) | |
| tree | 07b5223210ec2b646f877bd93e972bb06103f7e3 /src/managers/SessionLockManager.cpp | |
| parent | cc01550aff70a0cbee5b62db5f4a08789244998f (diff) | |
lock: add allow_session_lock_restore
Diffstat (limited to 'src/managers/SessionLockManager.cpp')
| -rw-r--r-- | src/managers/SessionLockManager.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/managers/SessionLockManager.cpp b/src/managers/SessionLockManager.cpp index 29e6ddca..df284c04 100644 --- a/src/managers/SessionLockManager.cpp +++ b/src/managers/SessionLockManager.cpp @@ -44,7 +44,9 @@ static void handleSurfaceDestroy(void* owner, void* data) { void CSessionLockManager::onNewSessionLock(wlr_session_lock_v1* pWlrLock) { - if (m_sSessionLock.active) { + static auto* const PALLOWRELOCK = &g_pConfigManager->getConfigValuePtr("misc:allow_session_lock_restore")->intValue; + + if (m_sSessionLock.active && (!*PALLOWRELOCK || m_sSessionLock.pWlrLock)) { Debug::log(LOG, "Attempted to lock a locked session!"); wlr_session_lock_v1_destroy(pWlrLock); return; @@ -113,6 +115,8 @@ void CSessionLockManager::onNewSessionLock(wlr_session_lock_v1* pWlrLock) { g_pCompositor->focusSurface(nullptr); + m_sSessionLock.pWlrLock = nullptr; + for (auto& m : g_pCompositor->m_vMonitors) g_pHyprRenderer->damageMonitor(m.get()); }, |
