screenShield: Do not lock the screen when locked down
When using the 'disable-lock-screen' setting to lock down the screen lock, the expectation is that users cannot lock the screen. However as it turns out, all the setting currently does is hiding the lock button in the system menu and making the lock settings in the privacy panel inactive. That means that if the 'lock-screen-enabled' setting isn't disabled and locked down as well, we will just continue to lock the screen on inactivity - not to mention the keyboard shortcut that isn't subject to that setting anyway. Instead of expecting administrators to hunt down every possible way of locking the screen and disabling it individually, we can easily handle all cases by refusing to lock the screen when disabled by the lockdown settings. https://bugzilla.gnome.org/show_bug.cgi?id=780212
This commit is contained in:
parent
d15b46f5cb
commit
199bc85bce
@ -33,6 +33,9 @@ const SCREENSAVER_SCHEMA = 'org.gnome.desktop.screensaver';
|
||||
const LOCK_ENABLED_KEY = 'lock-enabled';
|
||||
const LOCK_DELAY_KEY = 'lock-delay';
|
||||
|
||||
const LOCKDOWN_SCHEMA = 'org.gnome.desktop.lockdown';
|
||||
const DISABLE_LOCK_KEY = 'disable-lock-screen';
|
||||
|
||||
const LOCKED_STATE_STR = 'screenShield.locked';
|
||||
// fraction of screen height the arrow must reach before completing
|
||||
// the slide up automatically
|
||||
@ -541,6 +544,8 @@ const ScreenShield = new Lang.Class({
|
||||
this._settings = new Gio.Settings({ schema_id: SCREENSAVER_SCHEMA });
|
||||
this._settings.connect('changed::' + LOCK_ENABLED_KEY, Lang.bind(this, this._syncInhibitor));
|
||||
|
||||
this._lockSettings = new Gio.Settings({ schema_id: LOCKDOWN_SCHEMA });
|
||||
|
||||
this._isModal = false;
|
||||
this._hasLockScreen = false;
|
||||
this._isGreeter = false;
|
||||
@ -1290,6 +1295,11 @@ const ScreenShield = new Lang.Class({
|
||||
},
|
||||
|
||||
lock: function(animate) {
|
||||
if (this._lockSettings.get_boolean(DISABLE_LOCK_KEY)) {
|
||||
log('Screen lock is locked down, not locking') // lock, lock - who's there?
|
||||
return;
|
||||
}
|
||||
|
||||
// Warn the user if we can't become modal
|
||||
if (!this._becomeModal()) {
|
||||
Main.notifyError(_("Unable to lock"),
|
||||
|
Loading…
Reference in New Issue
Block a user