Blob Blame History Raw
--- gdm-2.22.0/gui/simple-greeter/gdm-user-chooser-widget.c	2008-05-01 18:35:35.000000000 -0400
+++ hacked/gui/simple-greeter/gdm-user-chooser-widget.c	2008-05-07 20:27:09.000000000 -0400
@@ -34,9 +34,14 @@
 #include <glib/gstdio.h>
 #include <gtk/gtk.h>
 
+#include <gconf/gconf-client.h>
+
 #include "gdm-user-manager.h"
 #include "gdm-user-chooser-widget.h"
 
+
+#define KEY_DISABLE_USER_LIST "/apps/gdm/simple-greeter/disable_user_list"
+
 enum {
         USER_NO_DISPLAY              = 1 << 0,
         USER_ACCOUNT_DISABLED        = 1 << 1,
@@ -59,6 +64,7 @@
         guint           show_other_user : 1;
         guint           show_guest_user : 1;
         guint           show_auto_user : 1;
+	guint		show_normal_users : 1;
 };
 
 enum {
@@ -231,6 +237,25 @@
         }
 }
 
+static gboolean 
+is_user_list_disabled (GdmUserChooserWidget *widget)
+{
+	GConfClient *client;
+	GError      *error;
+	gboolean     result;
+
+        client = gconf_client_get_default ();
+        error = NULL;
+        result = gconf_client_get_bool (client, KEY_DISABLE_USER_LIST, &error);
+        if (error != NULL) {
+                g_debug ("GdmUserChooserWidget: unable to get disable-user-list configuration: %s", error->message);
+                g_error_free (error);
+        }
+        g_object_unref (client);
+
+        return result;
+}
+
 static GObject *
 gdm_user_chooser_widget_constructor (GType                  type,
                                      guint                  n_construct_properties,
@@ -247,6 +272,8 @@
         gdm_user_chooser_widget_set_show_auto_user (user_chooser_widget, FALSE);
         gdm_user_chooser_widget_set_show_other_user (user_chooser_widget, TRUE);
 
+	user_chooser_widget->priv->show_normal_users = !is_user_list_disabled (user_chooser_widget);
+
         return G_OBJECT (user_chooser_widget);
 }
 
@@ -403,6 +430,9 @@
         char         *tooltip;
         gboolean      is_logged_in;
 
+	if (!widget->priv->show_normal_users)
+		return;
+
         pixbuf = gdm_user_render_icon (user, ICON_SIZE);
         if (pixbuf == NULL && widget->priv->stock_person_pixbuf != NULL) {
                 pixbuf = g_object_ref (widget->priv->stock_person_pixbuf);
--- gdm-2.22.0/gui/simple-greeter/gdm-simple-greeter.schemas.in	2008-05-07 20:28:57.000000000 -0400
+++ hacked/gui/simple-greeter/gdm-simple-greeter.schemas.in	2008-05-07 20:22:33.000000000 -0400
@@ -68,6 +68,17 @@
       </locale>
     </schema>
     <schema>
+      <key>/schemas/apps/gdm/simple-greeter/disable_user_list</key>
+      <applyto>/apps/gdm/simple-greeter/disable_user_list</applyto>
+      <owner>gdm-simple-greeter</owner>
+      <type>bool</type>
+      <default>FALSE</default>
+      <locale name="C">
+        <short>Do not show known users in the login window</short>
+        <long>Set to TRUE to disable showing known users in the login window.</long>
+      </locale>
+    </schema>
+    <schema>
       <key>/schemas/apps/gdm/simple-greeter/wm_use_compiz</key>
       <applyto>/apps/gdm/simple-greeter/wm_use_compiz</applyto>
       <owner>gdm-simple-greeter</owner>