diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js index fd21fdeee..fd4f28c51 100644 --- a/js/ui/screenShield.js +++ b/js/ui/screenShield.js @@ -545,6 +545,7 @@ const ScreenShield = new Lang.Class({ this._settings.connect('changed::' + LOCK_ENABLED_KEY, Lang.bind(this, this._syncInhibitor)); 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._hasLockScreen = false; @@ -706,8 +707,10 @@ const ScreenShield = new Lang.Class({ }, _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 && - !this._isActive && this._settings.get_boolean(LOCK_ENABLED_KEY)); + !this._isActive && lockEnabled && !lockLocked); if (inhibit) { this._loginManager.inhibit(_("GNOME needs to lock the screen"), Lang.bind(this, function(inhibitor) {