[gnome-shell] UnlockDialog: honor org.gnome.desktop.screensaver.user-switch-enabled



commit 8f41c6bad88f9c1a9d2016789158dad9f7ef2832
Author: Giovanni Campagna <gcampagna src gnome org>
Date:   Thu Jan 3 01:02:13 2013 +0100

    UnlockDialog: honor org.gnome.desktop.screensaver.user-switch-enabled
    
    The screensaver schema has a key that it is meant for locking down
    the ability to switch user when the screen is locked, but support
    for it was not implemented in the new screenshield.
    Fix that by checking the key before creating the button.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=691042

 js/ui/unlockDialog.js |   35 +++++++++++++++++++++--------------
 1 files changed, 21 insertions(+), 14 deletions(-)
---
diff --git a/js/ui/unlockDialog.js b/js/ui/unlockDialog.js
index 794f6cd..6b6127b 100644
--- a/js/ui/unlockDialog.js
+++ b/js/ui/unlockDialog.js
@@ -198,18 +198,23 @@ const UnlockDialog = new Lang.Class({
                                           x_align: St.Align.END,
                                           y_align: St.Align.MIDDLE });
 
-        let otherUserLabel = new St.Label({ text: _("Log in as another user"),
-                                            style_class: 'login-dialog-not-listed-label' });
-        this._otherUserButton = new St.Button({ style_class: 'login-dialog-not-listed-button',
-                                                can_focus: true,
-                                                child: otherUserLabel,
-                                                reactive: true,
-                                                x_align: St.Align.START,
-                                                x_fill: true });
-        this._otherUserButton.connect('clicked', Lang.bind(this, this._otherUserClicked));
-        this.dialogLayout.add(this._otherUserButton,
-                              { x_align: St.Align.START,
-                                x_fill: false });
+        let screenSaverSettings = new Gio.Settings({ schema: 'org.gnome.desktop.screensaver' });
+        if (screenSaverSettings.get_boolean('user-switch-enabled')) {
+            let otherUserLabel = new St.Label({ text: _("Log in as another user"),
+                                                style_class: 'login-dialog-not-listed-label' });
+            this._otherUserButton = new St.Button({ style_class: 'login-dialog-not-listed-button',
+                                                    can_focus: true,
+                                                    child: otherUserLabel,
+                                                    reactive: true,
+                                                    x_align: St.Align.START,
+                                                    x_fill: true });
+            this._otherUserButton.connect('clicked', Lang.bind(this, this._otherUserClicked));
+            this.dialogLayout.add(this._otherUserButton,
+                                  { x_align: St.Align.START,
+                                    x_fill: false });
+        } else {
+            this._otherUserButton = null;
+        }
 
         this._updateSensitivity(true);
 
@@ -231,8 +236,10 @@ const UnlockDialog = new Lang.Class({
         this._promptEntry.reactive = sensitive;
         this._promptEntry.clutter_text.editable = sensitive;
         this._updateOkButtonSensitivity(sensitive && this._promptEntry.text.length > 0);
-        this._otherUserButton.reactive = sensitive;
-        this._otherUserButton.can_focus = sensitive;
+        if (this._otherUserButton) {
+            this._otherUserButton.reactive = sensitive;
+            this._otherUserButton.can_focus = sensitive;
+        }
     },
 
     _updateOkButtonSensitivity: function(sensitive) {



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