diff --git a/quickshell/DMSShell.qml b/quickshell/DMSShell.qml index 252bb0918..84614d94c 100644 --- a/quickshell/DMSShell.qml +++ b/quickshell/DMSShell.qml @@ -139,6 +139,14 @@ Item { return; fadeDpmsWindowLoader.loadedWindow.cancelFade(); } + + function onMonitorsOffChanged() { + if (IdleService.monitorsOff) + return; + if (!fadeDpmsWindowLoader.loadedWindow) + return; + fadeDpmsWindowLoader.loadedWindow.dismiss(); + } } } } diff --git a/quickshell/Modules/Lock/FadeToDpmsWindow.qml b/quickshell/Modules/Lock/FadeToDpmsWindow.qml index 048689095..8cefb69d0 100644 --- a/quickshell/Modules/Lock/FadeToDpmsWindow.qml +++ b/quickshell/Modules/Lock/FadeToDpmsWindow.qml @@ -4,6 +4,7 @@ import QtQuick import Quickshell import Quickshell.Wayland import qs.Common +import qs.Services PanelWindow { id: root @@ -65,10 +66,23 @@ PanelWindow { } function cancelFade() { + dismiss(); + fadeCancelled(); + } + + function dismiss() { fadeSeq.stop(); fadeOverlay.opacity = 0.0; active = false; - fadeCancelled(); + } + + Connections { + target: IdleService + function onIsShellLockedChanged() { + if (IdleService.isShellLocked) + return; + root.dismiss(); + } } MouseArea { diff --git a/quickshell/Modules/Lock/Lock.qml b/quickshell/Modules/Lock/Lock.qml index fd28e396a..1941ceee4 100644 --- a/quickshell/Modules/Lock/Lock.qml +++ b/quickshell/Modules/Lock/Lock.qml @@ -335,6 +335,7 @@ Scope { notifyLockedHint(sessionLock.secure); if (!sessionLock.secure) return; + IdleService.dismissFadeToLock(); lockRetryAttempts = 0; pendingLock = false; if (lockPowerOffArmed && powerOffOnLock)