screenShield: Activate dialog when necessary

Activating a dialog is slightly different from opening it; the
former is about showing the user authentication widgetry, while
the latter is about creating it and pre-allocating the necessary
resources.

Activate the screen shield dialog when necessary.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/872
This commit is contained in:
Georges Basile Stavracas Neto 2020-01-30 11:44:43 -03:00 committed by Florian Müllner
parent e42700a308
commit 7851069d9c
3 changed files with 14 additions and 4 deletions

View File

@ -1228,13 +1228,18 @@ var LoginDialog = GObject.registerClass({
return GLib.SOURCE_REMOVE;
}
activate() {
this._userList.grab_key_focus();
this.show();
}
open() {
Main.ctrlAltTabManager.addGroup(this,
_("Login Window"),
'dialog-password-symbolic',
{ sortGroup: CtrlAltTab.SortGroup.MIDDLE });
this._userList.grab_key_focus();
this.show();
this.activate();
this.opacity = 0;
Main.pushModal(this, { actionMode: Shell.ActionMode.LOGIN_SCREEN });

View File

@ -159,8 +159,8 @@ var ScreenShield = class {
_liftShield() {
if (this._isLocked) {
if (this._ensureUnlockDialog(true /* allowCancel */))
this._hideLockScreen(true /* animate */);
this._ensureUnlockDialog(true /* allowCancel */);
this._dialog.activate();
} else {
this.deactivate(true /* animate */);
}
@ -437,6 +437,7 @@ var ScreenShield = class {
}
this._dialog.allowCancel = allowCancel;
this._dialog.grab_key_focus();
return true;
}

View File

@ -527,6 +527,10 @@ var UnlockDialog = GObject.registerClass({
return true;
}
activate() {
this._showPrompt();
}
popModal(timestamp) {
if (this._isModal) {
Main.popModal(this, timestamp);