on xenial help sign in
Fix some focus issues
b059577Michael Terry
qml/Components/PassphraseLockscreen.qml+10−1
@@ -33,6 +33,7 @@ Item {
33
33
34 function clear(playAnimation) {
34 function clear(playAnimation) {
35 pinentryField.text = "";
35 pinentryField.text = "";
36+ pinentryField.incorrectOverride = false;
36 pinentryField.forceActiveFocus();
37 pinentryField.forceActiveFocus();
37 if (playAnimation) {
38 if (playAnimation) {
38 wrongPasswordAnimation.start();
39 wrongPasswordAnimation.start();
@@ -62,6 +63,9 @@ Item {
62 TextInput {
63 TextInput {
63 id: pinentryField
64 id: pinentryField
64 objectName: "pinentryField"
65 objectName: "pinentryField"
66+
67+ property bool incorrectOverride: false
68+
65 anchors {
69 anchors {
66 top: parent.top
70 top: parent.top
67 left: parent.left
71 left: parent.left
@@ -86,6 +90,11 @@ Item {
86 enabled: root.entryEnabled
90 enabled: root.entryEnabled
87 clip: true
91 clip: true
88
92
93+ onTextChanged: incorrectOverride = true
94+
95+ onActiveFocusChanged: if (!activeFocus) pinentryField.forceActiveFocus()
96+ onEnabledChanged: if (enabled) pinentryField.forceActiveFocus()
97+
89 onAccepted: {
98 onAccepted: {
90 if (pinentryField.text) {
99 if (pinentryField.text) {
91 root.entered(pinentryField.text);
100 root.entered(pinentryField.text);
@@ -101,7 +110,7 @@ Item {
101 anchors.horizontalCenter: parent.horizontalCenter
110 anchors.horizontalCenter: parent.horizontalCenter
102 horizontalAlignment: Text.AlignHCenter
111 horizontalAlignment: Text.AlignHCenter
103 text: root.errorText
112 text: root.errorText
104− visible: pinentryField.text.length == 0
113+ visible: pinentryField.text.length == 0 && !pinentryField.incorrectOverride
105 }
114 }
106 }
115 }
107 }
116 }
qml/Shell.qml+1−2
@@ -355,8 +355,7 @@ Item {
355 SystemImage.factoryReset() // Ouch!
355 SystemImage.factoryReset() // Ouch!
356 }
356 }
357 }
357 }
358−
359− if (failedLoginsDelayAttempts > 0 && AccountsService.failedLogins >= failedLoginsDelayAttempts) {
358+ if (failedLoginsDelayAttempts > 0 && AccountsService.failedLogins % failedLoginsDelayAttempts == 0) {
360 lockscreen.delayMinutes = failedLoginsDelayMinutes
359 lockscreen.delayMinutes = failedLoginsDelayMinutes
361 forcedDelayTimer.start()
360 forcedDelayTimer.start()
362 }
361 }