diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js index 503245a57..519f97f79 100644 --- a/js/gdm/loginDialog.js +++ b/js/gdm/loginDialog.js @@ -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 }); diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js index 5908ff547..b2b7c8a95 100644 --- a/js/ui/screenShield.js +++ b/js/ui/screenShield.js @@ -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; } diff --git a/js/ui/unlockDialog.js b/js/ui/unlockDialog.js index 7b9b0e723..f158d057c 100644 --- a/js/ui/unlockDialog.js +++ b/js/ui/unlockDialog.js @@ -527,6 +527,10 @@ var UnlockDialog = GObject.registerClass({ return true; } + activate() { + this._showPrompt(); + } + popModal(timestamp) { if (this._isModal) { Main.popModal(this, timestamp);