screenShield: Tie LockedHint
to locked state
Currently the hint reflects the `active` state, which effectively corresponds to the screen blank. That's a bit surprising considering the name, plus the `active` state is already exposed by the ScreenSaver D-Bus interface for anyone interested. It seems reasonable that the `LockedHint` property reflects the lock state, so change the handling to do exactly that. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/351 Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1561>
This commit is contained in:
parent
543261e6eb
commit
c5019dbf62
@ -151,12 +151,20 @@ var ScreenShield = class {
|
||||
if (prevIsActive != this._isActive)
|
||||
this.emit('active-changed');
|
||||
|
||||
if (this._loginSession)
|
||||
this._loginSession.SetLockedHintRemote(active);
|
||||
|
||||
this._syncInhibitor();
|
||||
}
|
||||
|
||||
_setLocked(locked) {
|
||||
let prevIsLocked = this._isLocked;
|
||||
this._isLocked = locked;
|
||||
|
||||
if (prevIsLocked !== this._isLocked)
|
||||
this.emit('locked-changed');
|
||||
|
||||
if (this._loginSession)
|
||||
this._loginSession.SetLockedHintRemote(locked);
|
||||
}
|
||||
|
||||
_activateDialog() {
|
||||
if (this._isLocked) {
|
||||
this._ensureUnlockDialog(true /* allowCancel */);
|
||||
@ -563,8 +571,7 @@ var ScreenShield = class {
|
||||
|
||||
this._activationTime = 0;
|
||||
this._setActive(false);
|
||||
this._isLocked = false;
|
||||
this.emit('locked-changed');
|
||||
this._setLocked(false);
|
||||
global.set_runtime_state(LOCKED_STATE_STR, null);
|
||||
}
|
||||
|
||||
@ -624,14 +631,12 @@ var ScreenShield = class {
|
||||
let userManager = AccountsService.UserManager.get_default();
|
||||
let user = userManager.get_user(GLib.get_user_name());
|
||||
|
||||
if (this._isGreeter)
|
||||
this._isLocked = true;
|
||||
else
|
||||
this._isLocked = user.password_mode != AccountsService.UserPasswordMode.NONE;
|
||||
|
||||
this.activate(animate);
|
||||
|
||||
this.emit('locked-changed');
|
||||
const lock = this._isGreeter
|
||||
? true
|
||||
: user.password_mode !== AccountsService.UserPasswordMode.NONE;
|
||||
this._setLocked(lock);
|
||||
}
|
||||
|
||||
// If the previous shell crashed, and gnome-session restarted us, then re-lock
|
||||
|
Loading…
Reference in New Issue
Block a user