From d3add14ce8e2f149a0e6f37103e1f950bbe1d418 Mon Sep 17 00:00:00 2001 From: Ly-sec Date: Wed, 20 Aug 2025 14:27:17 +0200 Subject: [PATCH] Fix Lockscreen (#121) --- Modules/IPC/IPCManager.qml | 6 +++++- Modules/LockScreen/LockScreen.qml | 12 +++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Modules/IPC/IPCManager.qml b/Modules/IPC/IPCManager.qml index 6eb0d50..28107c2 100644 --- a/Modules/IPC/IPCManager.qml +++ b/Modules/IPC/IPCManager.qml @@ -44,7 +44,11 @@ Item { target: "lockScreen" function toggle() { - lockScreen.isLoaded = !lockScreen.isLoaded + // Only lock if not already locked (prevents the red screen issue) + // Note: No unlock via IPC for security reasons + if (!lockScreen.isLoaded) { + lockScreen.isLoaded = true + } } } diff --git a/Modules/LockScreen/LockScreen.qml b/Modules/LockScreen/LockScreen.qml index 161a6e3..f800318 100644 --- a/Modules/LockScreen/LockScreen.qml +++ b/Modules/LockScreen/LockScreen.qml @@ -14,14 +14,24 @@ import qs.Widgets NLoader { id: lockScreen + + // Log state changes to help debug lock screen issues + onIsLoadedChanged: { + Logger.log("LockScreen", "State changed - isLoaded:", isLoaded) + } + // Allow a small grace period after unlocking so the compositor releases the lock surfaces Timer { id: unloadAfterUnlockTimer interval: 250 repeat: false - onTriggered: lockScreen.isLoaded = false + onTriggered: { + Logger.log("LockScreen", "Unload timer triggered - setting isLoaded to false") + lockScreen.isLoaded = false + } } function scheduleUnloadAfterUnlock() { + Logger.log("LockScreen", "Scheduling unload after unlock") unloadAfterUnlockTimer.start() } content: Component {