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)