polkitAgent: Only set key focus to password entry after opening dialog

Set the key focus to the password field only after we got a request
(and therefore know that a password is requested) instead of using
`setInitialKeyFocus()`. This way we don't try to focus the password
field by default if we aren't showing it (e.g. in case the user has no
password or is using fingerprint login).

Also we have to move the call to `grab_key_focus()` to happen after
`_ensureOpen()`, because otherwise the ModalDialog will set the focus to
one of the buttons while opening itself.

Cherry-picked from commit 70203b58ca.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2066
This commit is contained in:
Jonas Dreßler 2019-06-24 10:57:24 +02:00 committed by Florian Müllner
parent fb74394d58
commit a35f9a5226

View File

@ -100,7 +100,6 @@ var AuthenticationDialog = GObject.registerClass({
});
this._passwordBox.add(this._workSpinner.actor);
this.setInitialKeyFocus(this._passwordEntry);
this._passwordBox.hide();
this._errorMessageLabel = new St.Label({ style_class: 'prompt-dialog-error-label' });
@ -269,9 +268,10 @@ var AuthenticationDialog = GObject.registerClass({
this._passwordBox.show();
this._passwordEntry.set_text('');
this._passwordEntry.grab_key_focus();
this._updateSensitivity(true);
this._ensureOpen();
this._passwordEntry.grab_key_focus();
}
_onSessionShowError(session, text) {