screenShield: Rework key focus management
Instead of always grabbing key focus for the screen lock group, do that for the unlock dialog itself. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/872
This commit is contained in:
parent
37e55df298
commit
727c84251d
@ -57,11 +57,14 @@ var ScreenShield = class {
|
||||
});
|
||||
Main.ctrlAltTabManager.addGroup(this._lockScreenGroup, _("Lock"), 'changes-prevent-symbolic');
|
||||
|
||||
this._lockDialogGroup = new St.Widget({ x_expand: true,
|
||||
y_expand: true,
|
||||
reactive: true,
|
||||
pivot_point: new Graphene.Point({ x: 0.5, y: 0.5 }),
|
||||
name: 'lockDialogGroup' });
|
||||
this._lockDialogGroup = new St.Widget({
|
||||
x_expand: true,
|
||||
y_expand: true,
|
||||
reactive: true,
|
||||
can_focus: true,
|
||||
pivot_point: new Graphene.Point({ x: 0.5, y: 0.5 }),
|
||||
name: 'lockDialogGroup',
|
||||
});
|
||||
|
||||
this.actor.add_actor(this._lockScreenGroup);
|
||||
this.actor.add_actor(this._lockDialogGroup);
|
||||
@ -173,7 +176,7 @@ var ScreenShield = class {
|
||||
// LoginDialog.cancel() will grab the key focus
|
||||
// on its own, so ensure it stays on lock screen
|
||||
// instead
|
||||
this._lockScreenGroup.grab_key_focus();
|
||||
this._dialog.grab_key_focus();
|
||||
}
|
||||
}
|
||||
|
||||
@ -434,7 +437,7 @@ var ScreenShield = class {
|
||||
this._lockScreenShown({ fadeToBlack, animateFade: false });
|
||||
}
|
||||
|
||||
this._lockScreenGroup.grab_key_focus();
|
||||
this._dialog.grab_key_focus();
|
||||
}
|
||||
|
||||
_lockScreenShown(params) {
|
||||
|
@ -418,6 +418,7 @@ var UnlockDialog = GObject.registerClass({
|
||||
accessible_role: Atk.Role.WINDOW,
|
||||
style_class: 'login-dialog',
|
||||
visible: false,
|
||||
can_focus: true,
|
||||
reactive: true,
|
||||
});
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user