You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/kde-plasma/plasma-workspace/files/plasma-workspace-5.20.5-fix...

68 lines
2.6 KiB

From 13057013d55ae19e76d29b9edc96510e52da2a7a Mon Sep 17 00:00:00 2001
From: David Edmundson <kde@davidedmundson.co.uk>
Date: Fri, 8 Jan 2021 12:40:07 +0000
Subject: [PATCH] [lookandfeel] Fix wake existing screensaver mode with key
presses
In commit 45e0a722fb85bb5d1ab8bef92080e934254b13aa we changed the focus
on the textfield with the intention of fixing the cusor blinking.
This had the unfortunate side effect of breaking waking out of the
screensaver mode with just the keyboard.
That screensaver mode was bound to:
```
property bool blockUI: mainBlock.mainPasswordBox.text.length > 0
```
for that to change, we need to have focus.
Instead this patches cursor blinking more explicity.
Doing it only in the lock screen (as opposed to the toolkit) makes sense
as this only happens due to somewhat unusual usage inside the
lockscreen.
BUG: 431286
(cherry picked from commit 2cbd7e4c70d0592d16cdaf58ed43effe4a716aa4)
---
lookandfeel/contents/lockscreen/LockScreenUi.qml | 3 ---
lookandfeel/contents/lockscreen/MainBlock.qml | 6 ++++++
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/lookandfeel/contents/lockscreen/LockScreenUi.qml b/lookandfeel/contents/lockscreen/LockScreenUi.qml
index d2f8a2b7d..c4f9e8a45 100644
--- a/lookandfeel/contents/lockscreen/LockScreenUi.qml
+++ b/lookandfeel/contents/lockscreen/LockScreenUi.qml
@@ -229,9 +229,6 @@ PlasmaCore.ColorScope {
// this isn't implicit, otherwise items still get processed for the scenegraph
visible: opacity > 0
- // changing enabled will toggle if an item can have activeFocus, which otherwise
- //keeps the text cursor blinking even when invisble
- enabled: visible
initialItem: MainBlock {
id: mainBlock
diff --git a/lookandfeel/contents/lockscreen/MainBlock.qml b/lookandfeel/contents/lockscreen/MainBlock.qml
index 4bd5df0e5..e8f5ced47 100644
--- a/lookandfeel/contents/lockscreen/MainBlock.qml
+++ b/lookandfeel/contents/lockscreen/MainBlock.qml
@@ -66,6 +66,12 @@ SessionManagementScreen {
enabled: !authenticator.graceLocked
revealPasswordButtonShown: true
+ // In Qt this is implicitly active based on focus rather than visibility
+ // in any other application having a focussed invisible object would be weird
+ // but here we are using to wake out of screensaver mode
+ // We need to explicitly disable cursor flashing to avoid unnecessary renders
+ cursorVisible: visible
+
onAccepted: {
if (lockScreenUiVisible) {
startLogin();
--
GitLab