[gnome-shell] UserMenu: don't lock the screen if automatic lock disabled
- From: Giovanni Campagna <gcampagna src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] UserMenu: don't lock the screen if automatic lock disabled
- Date: Tue, 14 Aug 2012 11:01:05 +0000 (UTC)
commit 06262a903e526aba79557b2ab33172668998028e
Author: Giovanni Campagna <gcampagna src gnome org>
Date: Tue Aug 14 01:51:51 2012 +0200
UserMenu: don't lock the screen if automatic lock disabled
If automatic lock is disabled in the control center, only lock
when explicitly using the Lock menu item, and not for Suspend or
Switch user/session.
https://bugzilla.gnome.org/show_bug.cgi?id=680231
js/ui/userMenu.js | 20 ++++++++++++++------
1 files changed, 14 insertions(+), 6 deletions(-)
---
diff --git a/js/ui/userMenu.js b/js/ui/userMenu.js
index 9522134..07f7ee6 100644
--- a/js/ui/userMenu.js
+++ b/js/ui/userMenu.js
@@ -19,9 +19,11 @@ const PopupMenu = imports.ui.popupMenu;
const Util = imports.misc.util;
const LOCKDOWN_SCHEMA = 'org.gnome.desktop.lockdown';
+const SCREENSAVER_SCHEMA = 'org.gnome.desktop.screensaver';
const DISABLE_USER_SWITCH_KEY = 'disable-user-switching';
const DISABLE_LOCK_SCREEN_KEY = 'disable-lock-screen';
const DISABLE_LOG_OUT_KEY = 'disable-log-out';
+const LOCK_ENABLED_KEY = 'lock-enabled';
const DIALOG_ICON_SIZE = 64;
@@ -438,6 +440,7 @@ const UserMenuButton = new Lang.Class({
let box = new St.BoxLayout({ name: 'panelUserMenu' });
this.actor.add_actor(box);
+ this._screenSaverSettings = new Gio.Settings({ schema: SCREENSAVER_SCHEMA });
this._lockdownSettings = new Gio.Settings({ schema: LOCKDOWN_SCHEMA });
this._userManager = AccountsService.UserManager.get_default();
@@ -774,7 +777,8 @@ const UserMenuButton = new Lang.Class({
_onLoginScreenActivate: function() {
Main.overview.hide();
- Main.screenShield.lock(false);
+ if (this._screenSaverSettings.get_boolean(LOCK_ENABLED_KEY))
+ Main.screenShield.lock(false);
this._userManager.goto_login_session();
},
@@ -797,13 +801,17 @@ const UserMenuButton = new Lang.Class({
this._suspendOrPowerOffItem.state == PopupMenu.PopupAlternatingMenuItemState.DEFAULT) {
this._session.ShutdownRemote();
} else {
- let tmpId = Main.screenShield.connect('lock-screen-shown', Lang.bind(this, function() {
- Main.screenShield.disconnect(tmpId);
+ if (this._screenSaverSettings.get_boolean(LOCK_ENABLED_KEY)) {
+ let tmpId = Main.screenShield.connect('lock-screen-shown', Lang.bind(this, function() {
+ Main.screenShield.disconnect(tmpId);
- this._upClient.suspend_sync(null);
- }));
+ this._upClient.suspend_sync(null);
+ }));
- Main.screenShield.lock(true);
+ Main.screenShield.lock(true);
+ } else {
+ this._upClient.suspend_sync(null);
+ }
}
}
});
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]