authPrompt: Don't propagate serviceName to setMessage
There isn't always a serviceName when we set a message. Furthermore we
are passing the serviceName only to decide if we want to wiggle or not.
Pass the wiggle parameters instead. If they are missing, we don't want
to wiggle.
This fixes the following error:
JS ERROR: Exception in callback for signal: login-format-changed: Error: Wrong type number; string expected
setMessage@resource:///org/gnome/shell/gdm/authPrompt.js:542:13
_showRealmLoginHint@resource:///org/gnome/shell/gdm/loginDialog.js:931:26
_emit@resource:///org/gnome/gjs/modules/core/_signals.js:114:47
_updateLoginFormat@resource:///org/gnome/shell/gdm/realmd.js:85:18
_reloadRealm@resource:///org/gnome/shell/gdm/realmd.js:57:14
_onRealmLoaded@resource:///org/gnome/shell/gdm/realmd.js:64:14
_makeProxyWrapper/</<@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:245:34
Fallout from 526f0711f1
.
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5547
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2404>
This commit is contained in:
parent
7950f4d93e
commit
32248e8226
@ -351,7 +351,20 @@ var AuthPrompt = GObject.registerClass({
|
||||
}
|
||||
|
||||
_onShowMessage(_userVerifier, serviceName, message, type) {
|
||||
this.setMessage(serviceName, message, type);
|
||||
let wiggleParameters = {duration: 0};
|
||||
|
||||
if (type === GdmUtil.MessageType.ERROR &&
|
||||
this._userVerifier.serviceIsFingerprint(serviceName)) {
|
||||
// TODO: Use Await for wiggle to be over before unfreezing the user verifier queue
|
||||
wiggleParameters = {
|
||||
duration: 65,
|
||||
wiggleCount: 3,
|
||||
};
|
||||
this._userVerifier.increaseCurrentMessageTimeout(
|
||||
wiggleParameters.duration * (wiggleParameters.wiggleCount + 2));
|
||||
}
|
||||
|
||||
this.setMessage(message, type, wiggleParameters);
|
||||
this.emit('prompted');
|
||||
}
|
||||
|
||||
@ -525,7 +538,7 @@ var AuthPrompt = GObject.registerClass({
|
||||
});
|
||||
}
|
||||
|
||||
setMessage(serviceName, message, type) {
|
||||
setMessage(message, type, wiggleParameters = {duration: 0}) {
|
||||
if (type == GdmUtil.MessageType.ERROR)
|
||||
this._message.add_style_class_name('login-dialog-message-warning');
|
||||
else
|
||||
@ -545,18 +558,8 @@ var AuthPrompt = GObject.registerClass({
|
||||
this._message.opacity = 0;
|
||||
}
|
||||
|
||||
if (type === GdmUtil.MessageType.ERROR &&
|
||||
this._userVerifier.serviceIsFingerprint(serviceName)) {
|
||||
// TODO: Use Await for wiggle to be over before unfreezing the user verifier queue
|
||||
const wiggleParameters = {
|
||||
duration: 65,
|
||||
wiggleCount: 3,
|
||||
};
|
||||
this._userVerifier.increaseCurrentMessageTimeout(
|
||||
wiggleParameters.duration * (wiggleParameters.wiggleCount + 2));
|
||||
Util.wiggle(this._message, wiggleParameters);
|
||||
}
|
||||
}
|
||||
|
||||
updateSensitivity(sensitive) {
|
||||
if (this._entry.reactive === sensitive)
|
||||
|
Loading…
Reference in New Issue
Block a user