Revert "unlockDialog: Remove 'Login as another user' Label"

This reverts commit c6a79fafc. The back button doesn't really work
as a replacement for going back to the login screen.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1006
This commit is contained in:
Georges Basile Stavracas Neto 2020-02-14 12:05:23 -03:00 committed by Florian Müllner
parent ead73e5195
commit 06565542e7
2 changed files with 39 additions and 13 deletions

View File

@ -1,7 +1,7 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/* exported AuthPrompt */ /* exported AuthPrompt */
const { Clutter, Gdm, Gio, GObject, Pango, Shell, St } = imports.gi; const { Clutter, GObject, Pango, Shell, St } = imports.gi;
const Animation = imports.ui.animation; const Animation = imports.ui.animation;
const Batch = imports.gdm.batch; const Batch = imports.gdm.batch;
@ -129,7 +129,7 @@ var AuthPrompt = GObject.registerClass({
y_align: Clutter.ActorAlign.CENTER, y_align: Clutter.ActorAlign.CENTER,
child: new St.Icon({ icon_name: 'go-previous-symbolic' }), child: new St.Icon({ icon_name: 'go-previous-symbolic' }),
}); });
this.cancelButton.connect('clicked', () => this._onCancelButtonClicked()); this.cancelButton.connect('clicked', () => this.cancel());
this._mainBox.add_child(this.cancelButton); this._mainBox.add_child(this.cancelButton);
let entryParams = { let entryParams = {
@ -382,15 +382,6 @@ var AuthPrompt = GObject.registerClass({
}); });
} }
_onCancelButtonClicked() {
if (this._mode == AuthPromptMode.UNLOCK_ONLY) {
let screenSaverSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.screensaver' });
if (screenSaverSettings.get_boolean('user-switch-enabled'))
Gdm.goto_login_session_sync(null);
}
this.cancel();
}
setMessage(message, type) { setMessage(message, type) {
if (type == GdmUtil.MessageType.ERROR) if (type == GdmUtil.MessageType.ERROR)
this._message.add_style_class_name('login-dialog-message-warning'); this._message.add_style_class_name('login-dialog-message-warning');

View File

@ -1,7 +1,7 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/* exported UnlockDialog */ /* exported UnlockDialog */
const { AccountsService, Atk, Clutter, Gdm, const { AccountsService, Atk, Clutter, Gdm, Gio,
GnomeDesktop, GLib, GObject, Meta, Shell, St } = imports.gi; GnomeDesktop, GLib, GObject, Meta, Shell, St } = imports.gi;
const Background = imports.ui.background; const Background = imports.ui.background;
@ -625,6 +625,24 @@ var UnlockDialog = GObject.registerClass({
this._promptBox.add_child(this._authPrompt); this._promptBox.add_child(this._authPrompt);
let screenSaverSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.screensaver' });
if (screenSaverSettings.get_boolean('user-switch-enabled')) {
let otherUserLabel = new St.Label({
text: _('Log in as another user'),
style_class: 'login-dialog-not-listed-label',
});
this._otherUserButton = new St.Button({
style_class: 'login-dialog-not-listed-button',
can_focus: true,
child: otherUserLabel,
reactive: true,
});
this._otherUserButton.connect('clicked', this._otherUserClicked.bind(this));
this._promptBox.add_child(this._otherUserButton);
} else {
this._otherUserButton = null;
}
this._authPrompt.reset(); this._authPrompt.reset();
this._updateSensitivity(true); this._updateSensitivity(true);
} }
@ -632,17 +650,28 @@ var UnlockDialog = GObject.registerClass({
_maybeDestroyAuthPrompt() { _maybeDestroyAuthPrompt() {
let focus = global.stage.key_focus; let focus = global.stage.key_focus;
if (focus === null || if (focus === null ||
(this._authPrompt && this._authPrompt.contains(focus))) (this._authPrompt && this._authPrompt.contains(focus)) ||
(this._otherUserButton && focus === this._otherUserButton))
this.grab_key_focus(); this.grab_key_focus();
if (this._authPrompt) { if (this._authPrompt) {
this._authPrompt.destroy(); this._authPrompt.destroy();
this._authPrompt = null; this._authPrompt = null;
} }
if (this._otherUserButton) {
this._otherUserButton.destroy();
this._otherUserButton = null;
}
} }
_updateSensitivity(sensitive) { _updateSensitivity(sensitive) {
this._authPrompt.updateSensitivity(sensitive); this._authPrompt.updateSensitivity(sensitive);
if (this._otherUserButton) {
this._otherUserButton.reactive = sensitive;
this._otherUserButton.can_focus = sensitive;
}
} }
_showClock() { _showClock() {
@ -749,6 +778,12 @@ var UnlockDialog = GObject.registerClass({
}); });
} }
_otherUserClicked() {
Gdm.goto_login_session_sync(null);
this._authPrompt.cancel();
}
_onDestroy() { _onDestroy() {
this.popModal(); this.popModal();