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)
|
if (prevIsActive != this._isActive)
|
||||||
this.emit('active-changed');
|
this.emit('active-changed');
|
||||||
|
|
||||||
if (this._loginSession)
|
|
||||||
this._loginSession.SetLockedHintRemote(active);
|
|
||||||
|
|
||||||
this._syncInhibitor();
|
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() {
|
_activateDialog() {
|
||||||
if (this._isLocked) {
|
if (this._isLocked) {
|
||||||
this._ensureUnlockDialog(true /* allowCancel */);
|
this._ensureUnlockDialog(true /* allowCancel */);
|
||||||
@ -563,8 +571,7 @@ var ScreenShield = class {
|
|||||||
|
|
||||||
this._activationTime = 0;
|
this._activationTime = 0;
|
||||||
this._setActive(false);
|
this._setActive(false);
|
||||||
this._isLocked = false;
|
this._setLocked(false);
|
||||||
this.emit('locked-changed');
|
|
||||||
global.set_runtime_state(LOCKED_STATE_STR, null);
|
global.set_runtime_state(LOCKED_STATE_STR, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -624,14 +631,12 @@ var ScreenShield = class {
|
|||||||
let userManager = AccountsService.UserManager.get_default();
|
let userManager = AccountsService.UserManager.get_default();
|
||||||
let user = userManager.get_user(GLib.get_user_name());
|
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.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
|
// If the previous shell crashed, and gnome-session restarted us, then re-lock
|
||||||
|
Loading…
Reference in New Issue
Block a user