[gnome-shell/gnome-3-6] Add a setting to force the 'Log out' menuitem



commit a618c41e7b97b1019724c774c13fb91001cdc660
Author: Matthias Clasen <mclasen redhat com>
Date:   Mon Oct 29 00:27:18 2012 -0400

    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 deletions(-)
---
diff --git a/data/org.gnome.shell.gschema.xml.in.in b/data/org.gnome.shell.gschema.xml.in.in
index 824d1b7..d7370b2 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>
       <_summary>Internally used to store the last session presence status for the user. The
 value here is from the GsmPresenceStatus enumeration.</_summary>
     </key>
+    <key name="always-show-log-out" type="b">
+      <default>false</default>
+      <_summary>Always show the 'Log out' menuitem in the user menu.</_summary>
+      <_description>
+        This key overrides the automatic hiding of the 'Log out'
+        menuitem in single-user, single-session situations.
+      </_description>
+    </key>
     <child name="calendar" schema="org.gnome.shell.calendar"/>
     <child name="recorder" schema="org.gnome.shell.recorder"/>
     <child name="keybindings" schema="org.gnome.shell.keybindings"/>
diff --git a/js/ui/userMenu.js b/js/ui/userMenu.js
index 45a2240..31b7ba0 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() {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]