screenShield: Do not take an inhibitor when disabled by lockdown

Just as with the normal lock screen settings, we shouldn't request
a logind inhibitor when locking is disabled via lockdown settings.

https://bugzilla.gnome.org/show_bug.cgi?id=780212
This commit is contained in:
Florian Müllner 2017-03-17 15:48:22 +01:00
parent 199bc85bce
commit a786f0bcd2

View File

@ -545,6 +545,7 @@ const ScreenShield = new Lang.Class({
this._settings.connect('changed::' + LOCK_ENABLED_KEY, Lang.bind(this, this._syncInhibitor)); this._settings.connect('changed::' + LOCK_ENABLED_KEY, Lang.bind(this, this._syncInhibitor));
this._lockSettings = new Gio.Settings({ schema_id: LOCKDOWN_SCHEMA }); this._lockSettings = new Gio.Settings({ schema_id: LOCKDOWN_SCHEMA });
this._lockSettings.connect('changed::' + DISABLE_LOCK_KEY, Lang.bind(this, this._syncInhibitor));
this._isModal = false; this._isModal = false;
this._hasLockScreen = false; this._hasLockScreen = false;
@ -706,8 +707,10 @@ const ScreenShield = new Lang.Class({
}, },
_syncInhibitor: function() { _syncInhibitor: function() {
let lockEnabled = this._settings.get_boolean(LOCK_ENABLED_KEY);
let lockLocked = this._lockSettings.get_boolean(DISABLE_LOCK_KEY);
let inhibit = (this._loginSession && this._loginSession.Active && let inhibit = (this._loginSession && this._loginSession.Active &&
!this._isActive && this._settings.get_boolean(LOCK_ENABLED_KEY)); !this._isActive && lockEnabled && !lockLocked);
if (inhibit) { if (inhibit) {
this._loginManager.inhibit(_("GNOME needs to lock the screen"), this._loginManager.inhibit(_("GNOME needs to lock the screen"),
Lang.bind(this, function(inhibitor) { Lang.bind(this, function(inhibitor) {