[gnome-shell] userMenu: Offer "Switch Session" item on multi-session systems



commit ca26347dea8adb77205021a42618aeaa4103d353
Author: Florian MÃllner <fmuellner gnome org>
Date:   Sun May 13 17:11:06 2012 +0200

    userMenu: Offer "Switch Session" item on multi-session systems
    
    Since commit 518282e169, we hide both "Switch User" and "Log out"
    on single-user systems. However, if there is more than one session
    available, users may still want to get back to the login manager
    to change sessions.
    Add both "Log out" and "Switch Session" items in that case.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=675802

 js/ui/userMenu.js |   15 +++++++++++----
 1 files changed, 11 insertions(+), 4 deletions(-)
---
diff --git a/js/ui/userMenu.js b/js/ui/userMenu.js
index d72cbc7..07c0a19 100644
--- a/js/ui/userMenu.js
+++ b/js/ui/userMenu.js
@@ -1,6 +1,7 @@
 // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
 
 const AccountsService = imports.gi.AccountsService;
+const GdmGreeter = imports.gi.GdmGreeter;
 const Gio = imports.gi.Gio;
 const GLib = imports.gi.GLib;
 const Lang = imports.lang;
@@ -549,14 +550,20 @@ const UserMenuButton = new Lang.Class({
 
     _updateSwitchUser: function() {
         let allowSwitch = !this._lockdownSettings.get_boolean(DISABLE_USER_SWITCH_KEY);
-        this._loginScreenItem.actor.visible = allowSwitch &&
-                                              this._userManager.can_switch() &&
-                                              this._userManager.has_multiple_users;
+        let multiUser = this._userManager.can_switch() && this._userManager.has_multiple_users;
+        let multiSession = GdmGreeter.get_session_ids().length > 1;
+
+        this._loginScreenItem.label.set_text(multiUser ? _("Switch User")
+                                                       : _("Switch Session"));
+        this._loginScreenItem.actor.visible = allowSwitch && (multiUser || multiSession);
     },
 
     _updateLogout: function() {
         let allowLogout = !this._lockdownSettings.get_boolean(DISABLE_LOG_OUT_KEY);
-        this._logoutItem.actor.visible = allowLogout && this._userManager.has_multiple_users;
+        let multiUser = this._userManager.has_multiple_users;
+        let multiSession = GdmGreeter.get_session_ids().length > 1;
+
+        this._logoutItem.actor.visible = allowLogout && (multiUser || multiSession);
     },
 
     _updateLockScreen: function() {



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