From 9b5538323df49740094622d590018e2b1306d806 Mon Sep 17 00:00:00 2001 From: bbedward Date: Fri, 24 Jul 2026 14:13:43 -0400 Subject: [PATCH] lock: guard dpms window --- quickshell/Modules/Lock/FadeToDpmsWindow.qml | 6 +++++- quickshell/Modules/Lock/KeyboardController.qml | 3 +++ quickshell/Modules/Lock/LockScreenContent.qml | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/quickshell/Modules/Lock/FadeToDpmsWindow.qml b/quickshell/Modules/Lock/FadeToDpmsWindow.qml index 8cefb69d0..a60fe37f6 100644 --- a/quickshell/Modules/Lock/FadeToDpmsWindow.qml +++ b/quickshell/Modules/Lock/FadeToDpmsWindow.qml @@ -10,6 +10,7 @@ PanelWindow { id: root property bool active: false + property bool _completed: false signal fadeCompleted signal fadeCancelled @@ -36,7 +37,8 @@ PanelWindow { opacity: 0 onOpacityChanged: { - if (opacity >= 0.99 && root.active) { + if (opacity >= 0.99 && root.active && !root._completed) { + root._completed = true; root.fadeCompleted(); } } @@ -59,6 +61,7 @@ PanelWindow { function startFade() { if (!SettingsData.fadeToDpmsEnabled) return; + _completed = false; active = true; fadeOverlay.opacity = 0.0; fadeSeq.stop(); @@ -74,6 +77,7 @@ PanelWindow { fadeSeq.stop(); fadeOverlay.opacity = 0.0; active = false; + _completed = false; } Connections { diff --git a/quickshell/Modules/Lock/KeyboardController.qml b/quickshell/Modules/Lock/KeyboardController.qml index d2d07c6a5..d0bdb9cf8 100644 --- a/quickshell/Modules/Lock/KeyboardController.qml +++ b/quickshell/Modules/Lock/KeyboardController.qml @@ -27,11 +27,14 @@ Item { function hide() { if (isKeyboardActive && keyboard !== null) { keyboard.destroy(); + keyboard = null; isKeyboardActive = false; } else log.debug("The keyboard is already hidden"); } + Component.onDestruction: hide() + // private property Item keyboard: null Component { diff --git a/quickshell/Modules/Lock/LockScreenContent.qml b/quickshell/Modules/Lock/LockScreenContent.qml index ae46f1f53..6970e09a3 100644 --- a/quickshell/Modules/Lock/LockScreenContent.qml +++ b/quickshell/Modules/Lock/LockScreenContent.qml @@ -112,6 +112,8 @@ Item { } function sendLockerReadyOnce() { + if (root.demoMode) + return; if (lockerReadySent) return; if (root.unlocking)