unlockDialog: ignore resets after success
GDM sends a reset signal after verification succeeds so that a user-switched login screen can prepare for the next time it's going to be used. The unlock screen treats resets as failures, though. This means, on success, we're emitting "failed" and clearing any last second messages. This commit changes the unlock code to ignore resets from GDM after successful verification. https://bugzilla.gnome.org/show_bug.cgi?id=694688
This commit is contained in:
parent
e9584cfcab
commit
f72f501931
@ -47,6 +47,7 @@ const UnlockDialog = new Lang.Class({
|
|||||||
|
|
||||||
this._greeterClient = new Gdm.Client();
|
this._greeterClient = new Gdm.Client();
|
||||||
this._userVerifier = new GdmUtil.ShellUserVerifier(this._greeterClient, { reauthenticationOnly: true });
|
this._userVerifier = new GdmUtil.ShellUserVerifier(this._greeterClient, { reauthenticationOnly: true });
|
||||||
|
this._userVerified = false;
|
||||||
|
|
||||||
this._userVerifier.connect('ask-question', Lang.bind(this, this._onAskQuestion));
|
this._userVerifier.connect('ask-question', Lang.bind(this, this._onAskQuestion));
|
||||||
this._userVerifier.connect('show-message', Lang.bind(this, this._showMessage));
|
this._userVerifier.connect('show-message', Lang.bind(this, this._showMessage));
|
||||||
@ -250,18 +251,22 @@ const UnlockDialog = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_onVerificationComplete: function() {
|
_onVerificationComplete: function() {
|
||||||
|
this._userVerified = true;
|
||||||
this._userVerifier.clear();
|
this._userVerifier.clear();
|
||||||
this.emit('unlocked');
|
this.emit('unlocked');
|
||||||
},
|
},
|
||||||
|
|
||||||
_onReset: function() {
|
_onReset: function() {
|
||||||
|
if (!this._userVerified) {
|
||||||
this._userVerifier.clear();
|
this._userVerifier.clear();
|
||||||
this.emit('failed');
|
this.emit('failed');
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_onVerificationFailed: function() {
|
_onVerificationFailed: function() {
|
||||||
this._currentQuery = null;
|
this._currentQuery = null;
|
||||||
this._firstQuestion = true;
|
this._firstQuestion = true;
|
||||||
|
this._userVerified = false;
|
||||||
|
|
||||||
this._promptEntry.text = '';
|
this._promptEntry.text = '';
|
||||||
this._promptEntry.clutter_text.set_password_char('\u25cf');
|
this._promptEntry.clutter_text.set_password_char('\u25cf');
|
||||||
|
Loading…
Reference in New Issue
Block a user