From 2e0337b68c7a37058735549510e2943d8fad8949 Mon Sep 17 00:00:00 2001 From: bbedward Date: Tue, 21 Jul 2026 10:50:39 -0400 Subject: [PATCH] lock: avoid lock surface churn related #2885 port 1.5 (cherry picked from commit 30d9a340115ea502fc1a67763d7cd8c40d6e284b) --- quickshell/Modules/Lock/Lock.qml | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/quickshell/Modules/Lock/Lock.qml b/quickshell/Modules/Lock/Lock.qml index 1941ceee4..140eb0174 100644 --- a/quickshell/Modules/Lock/Lock.qml +++ b/quickshell/Modules/Lock/Lock.qml @@ -211,10 +211,7 @@ Scope { function onSessionResumed() { if (!shouldLock || sessionLock.locked) return; - log.warn("Session lock dead after resume - re-locking"); - resetLockRetry(); - lockRetryPending = true; - lockRetryPending = false; + resumeRelockTimer.restart(); } function onLoginctlStateChanged() { @@ -346,6 +343,8 @@ Scope { function onLockedChanged() { if (sessionLock.locked) return; + if (shouldLock && (IdleService.monitorsOff || lockPowerOffArmed || IdleService.lockPowerOffRequested)) + return; lockWakeAllowed = false; resetPowerOffFade(); if (IdleService.monitorsOff && powerOffOnLock) { @@ -430,6 +429,22 @@ Scope { onTriggered: root.lockRetryPending = false } + Timer { + id: resumeRelockTimer + interval: 1000 + repeat: false + onTriggered: { + if (!root.shouldLock || sessionLock.locked) + return; + if (IdleService.monitorsOff || root.lockPowerOffArmed || IdleService.lockPowerOffRequested) + return; + root.log.warn("Session lock dead after resume - re-locking"); + root.resetLockRetry(); + root.lockRetryPending = true; + root.lockRetryPending = false; + } + } + Timer { id: dpmsReapplyTimer interval: 100