From a618c41e7b97b1019724c774c13fb91001cdc660 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 29 Oct 2012 00:27:18 -0400 Subject: [PATCH] Add a setting to force the 'Log out' menuitem I've heard quite a bit of feedback from people who want to log out, even if they are the sole user on their system. It doesn't seem worth alienating them over this; so add a setting to make the 'Log out' item always show up. https://bugzilla.gnome.org/show_bug.cgi?id=686057 --- data/org.gnome.shell.gschema.xml.in.in | 8 ++++++++ js/ui/userMenu.js | 4 +++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/data/org.gnome.shell.gschema.xml.in.in b/data/org.gnome.shell.gschema.xml.in.in index 824d1b7e2..d7370b2dc 100644 --- a/data/org.gnome.shell.gschema.xml.in.in +++ b/data/org.gnome.shell.gschema.xml.in.in @@ -57,6 +57,14 @@ value here is from the TpConnectionPresenceType enumeration. <_summary>Internally used to store the last session presence status for the user. The value here is from the GsmPresenceStatus enumeration. + + false + <_summary>Always show the 'Log out' menuitem in the user menu. + <_description> + This key overrides the automatic hiding of the 'Log out' + menuitem in single-user, single-session situations. + + diff --git a/js/ui/userMenu.js b/js/ui/userMenu.js index 45a2240c1..31b7ba0fd 100644 --- a/js/ui/userMenu.js +++ b/js/ui/userMenu.js @@ -26,6 +26,7 @@ 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 ALWAYS_SHOW_LOG_OUT_KEY = 'always-show-log-out'; const DIALOG_ICON_SIZE = 64; @@ -619,12 +620,13 @@ const UserMenuButton = new Lang.Class({ _updateLogout: function() { let allowLogout = !this._lockdownSettings.get_boolean(DISABLE_LOG_OUT_KEY); + let alwaysShow = global.settings.get_boolean(ALWAYS_SHOW_LOG_OUT_KEY); let systemAccount = this._user.system_account; let localAccount = this._user.local_account; let multiUser = this._userManager.has_multiple_users; let multiSession = Gdm.get_session_ids().length > 1; - this._logoutItem.actor.visible = allowLogout && (multiUser || multiSession || systemAccount || !localAccount); + this._logoutItem.actor.visible = allowLogout && (alwaysShow || multiUser || multiSession || systemAccount || !localAccount); }, _updateLockScreen: function() {