--- a/patches/gdm-20-firsttime-helper.diff Wed Aug 04 14:25:56 2010 +0000
+++ b/patches/gdm-20-firsttime-helper.diff Wed Aug 04 20:42:58 2010 +0000
@@ -1,7 +1,67 @@
-diff -ruN gdm-2.31.1.orig/daemon/gdm-session-settings.c gdm-2.31.1/daemon/gdm-session-settings.c
---- gdm-2.31.1.orig/daemon/gdm-session-settings.c 2010-06-11 07:15:40.131853932 -0400
-+++ gdm-2.31.1/daemon/gdm-session-settings.c 2010-06-11 14:52:59.304535626 -0400
-@@ -267,12 +267,112 @@ gdm_session_settings_is_loaded (GdmSessi
+diff -ruN gdm-2.31.2.orig/common/gdm-common.c gdm-2.31.2/common/gdm-common.c
+--- gdm-2.31.2.orig/common/gdm-common.c 2010-08-04 15:10:51.330319028 +0500
++++ gdm-2.31.2/common/gdm-common.c 2010-08-04 15:11:09.638421585 +0500
+@@ -26,6 +26,7 @@
+ #include <locale.h>
+ #include <fcntl.h>
+ #include <sys/wait.h>
++#include <pwd.h>
+ #include <deflt.h>
+
+ #include <glib.h>
+@@ -476,3 +477,26 @@
+ return retval;
+ }
+
++gboolean
++gdm_check_first_time_login (char *username)
++{
++ struct passwd *pwent = NULL;
++ gboolean ret = FALSE;
++
++ g_return_val_if_fail (username != NULL && username[0], FALSE);
++
++ pwent = getpwnam (username);
++ if (pwent != NULL && pwent->pw_dir != NULL) {
++ char *user_dmrc;
++ user_dmrc = g_build_filename (pwent->pw_dir, ".dmrc", NULL);
++ if (!g_file_test (user_dmrc, G_FILE_TEST_EXISTS)) {
++ char *sys_dmrc;
++ sys_dmrc = g_build_filename (GDM_CACHE_DIR, username, "dmrc", NULL);
++ if (!g_file_test (sys_dmrc, G_FILE_TEST_EXISTS))
++ ret = TRUE;
++ g_free (sys_dmrc);
++ }
++ g_free (user_dmrc);
++ }
++ return ret;
++}
+diff -ruN gdm-2.31.2.orig/common/gdm-common.h gdm-2.31.2/common/gdm-common.h
+--- gdm-2.31.2.orig/common/gdm-common.h 2010-08-04 15:10:51.447310483 +0500
++++ gdm-2.31.2/common/gdm-common.h 2010-08-04 15:11:09.638899259 +0500
+@@ -60,6 +60,7 @@
+ GError **error);
+ char *gdm_read_default (gchar *key);
+
++gboolean gdm_check_first_time_login (char *username);
+
+ G_END_DECLS
+
+diff -ruN gdm-2.31.2.orig/common/Makefile.am gdm-2.31.2/common/Makefile.am
+--- gdm-2.31.2.orig/common/Makefile.am 2010-08-04 15:10:51.401096943 +0500
++++ gdm-2.31.2/common/Makefile.am 2010-08-04 15:11:09.639289679 +0500
+@@ -21,6 +21,7 @@
+ -DGDM_DEFAULTS_CONF=\"$(GDM_DEFAULTS_CONF)\" \
+ -DGDM_CUSTOM_CONF=\"$(GDM_CUSTOM_CONF)\" \
+ -DGDM_OLD_CONF=\"$(GDM_OLD_CONF)\" \
++ -DGDM_CACHE_DIR=\""$(localstatedir)/cache/gdm"\" \
+ $(COMMON_CFLAGS) \
+ $(NULL)
+
+diff -ruN gdm-2.31.2.orig/daemon/gdm-session-settings.c gdm-2.31.2/daemon/gdm-session-settings.c
+--- gdm-2.31.2.orig/daemon/gdm-session-settings.c 2010-08-04 15:10:52.042050317 +0500
++++ gdm-2.31.2/daemon/gdm-session-settings.c 2010-08-04 15:10:58.681410102 +0500
+@@ -267,12 +267,112 @@
}
gboolean
@@ -115,7 +175,7 @@
GError *load_error;
gboolean is_loaded;
gboolean skip_session;
-@@ -281,7 +381,7 @@ gdm_session_settings_load (GdmSessionSet
+@@ -281,7 +381,7 @@
char *session_name;
char *language_name;
char *layout_name;
@@ -124,7 +184,7 @@
skip_session = FALSE;
skip_language = FALSE;
-@@ -388,8 +488,10 @@ gdm_session_settings_load (GdmSessionSet
+@@ -388,8 +488,10 @@
is_loaded = TRUE;
out:
@@ -137,10 +197,10 @@
return is_loaded;
}
-diff -ruN gdm-2.31.1.orig/daemon/gdm-session-settings.h gdm-2.31.1/daemon/gdm-session-settings.h
---- gdm-2.31.1.orig/daemon/gdm-session-settings.h 2010-06-11 07:15:40.077407669 -0400
-+++ gdm-2.31.1/daemon/gdm-session-settings.h 2010-06-11 14:52:59.305027822 -0400
-@@ -53,6 +53,10 @@ struct _GdmSessionSettingsClass
+diff -ruN gdm-2.31.2.orig/daemon/gdm-session-settings.h gdm-2.31.2/daemon/gdm-session-settings.h
+--- gdm-2.31.2.orig/daemon/gdm-session-settings.h 2010-08-04 15:10:51.972748352 +0500
++++ gdm-2.31.2/daemon/gdm-session-settings.h 2010-08-04 15:10:58.682115740 +0500
+@@ -53,6 +53,10 @@
GType gdm_session_settings_get_type (void);
GdmSessionSettings *gdm_session_settings_new (void);
@@ -151,10 +211,10 @@
gboolean gdm_session_settings_load (GdmSessionSettings *settings,
const char *username,
gboolean handle_last,
-diff -ruN gdm-2.31.1.orig/daemon/gdm-session-worker.c gdm-2.31.1/daemon/gdm-session-worker.c
---- gdm-2.31.1.orig/daemon/gdm-session-worker.c 2010-06-11 07:15:40.121115699 -0400
-+++ gdm-2.31.1/daemon/gdm-session-worker.c 2010-06-11 14:54:55.003822472 -0400
-@@ -1809,6 +1809,71 @@ _lookup_passwd_info (const char *usernam
+diff -ruN gdm-2.31.2.orig/daemon/gdm-session-worker.c gdm-2.31.2/daemon/gdm-session-worker.c
+--- gdm-2.31.2.orig/daemon/gdm-session-worker.c 2010-08-04 15:10:52.913232228 +0500
++++ gdm-2.31.2/daemon/gdm-session-worker.c 2010-08-04 15:11:09.642389919 +0500
+@@ -1820,6 +1820,59 @@
}
static gboolean
@@ -162,61 +222,49 @@
+ char *language_name, char *layout_name)
+{
+ gboolean success = FALSE;
-+ struct passwd *pwent = NULL;
-+ pwent = getpwnam (worker->priv->username);
-+ if (pwent != NULL && pwent->pw_dir != NULL) {
-+ char *filename;
-+ pid_t fpid;
-+ filename = g_build_filename (pwent->pw_dir, ".dmrc", NULL);
-+ if (!g_file_test (filename, G_FILE_TEST_EXISTS)) {
-+ g_debug ("Running " LIBEXECDIR "/gdm-first-time-login-helper \"%s\" \"%s\" \"%s\" \"%s\"",
-+ worker->priv->username ? worker->priv->username : "",
-+ session_name ? session_name : "",
-+ layout_name ? layout_name : "",
-+ language_name ? language_name : "");
-+ char *argv[] = { LIBEXECDIR"/gdm-first-time-login-helper",
-+ worker->priv->username ? worker->priv->username : "",
-+ session_name ? session_name : "",
-+ layout_name ? layout_name : "",
-+ language_name ? language_name : "",
-+ NULL };
++ char *filename;
++ pid_t fpid;
++ g_debug ("Running " LIBEXECDIR "/gdm-first-time-login-helper \"%s\" \"%s\" \"%s\" \"%s\"",
++ worker->priv->username ? worker->priv->username : "",
++ session_name ? session_name : "",
++ layout_name ? layout_name : "",
++ language_name ? language_name : "");
++ char *argv[] = { LIBEXECDIR"/gdm-first-time-login-helper",
++ worker->priv->username ? worker->priv->username : "",
++ session_name ? session_name : "",
++ layout_name ? layout_name : "",
++ language_name ? language_name : "",
++ NULL };
+
-+ fpid = fork();
-+ if (fpid > 0) {
-+ int status;
-+ /* Wait for the child to finish */
-+ if (waitpid (fpid, &status, 0) == -1) {
-+ g_debug("User aborted gdm-first-time-login-helper");
-+ } else {
-+ success = TRUE;
-+ }
-+ } else if (fpid == 0) {
-+ execv (argv[0], argv);
-+ g_debug("Cannot start gdm-first-time-login-helper");
-+ _exit (0);
-+ }
++ fpid = fork();
++ if (fpid > 0) {
++ int status;
++ /* Wait for the child to finish */
++ if (waitpid (fpid, &status, 0) == -1) {
++ g_debug("User aborted gdm-first-time-login-helper");
++ } else {
++ success = TRUE;
++ }
++ } else if (fpid == 0) {
++ execv (argv[0], argv);
++ g_debug("Cannot start gdm-first-time-login-helper");
++ _exit (0);
++ }
+
-+ if (fpid == -1) {
-+ g_debug("Cannot start gdm-first-time-login-helper");
-+ }
-+ } else {
-+ g_debug ("Not running gdm-first-time-login-helper, user already has dmrc file");
-+ }
-+
-+ if (success == TRUE) {
-+ char *cachedir;
-+ char *cachefile;
++ if (fpid == -1) {
++ g_debug("Cannot start gdm-first-time-login-helper");
++ }
+
-+ cachedir = gdm_session_worker_create_cachedir (worker);
-+ g_debug ("Copying user dmrc file to cache");
-+ cachefile = g_build_filename (cachedir, "dmrc", NULL);
-+ gdm_cache_copy_file (worker, filename, cachefile);
-+ g_free (cachefile);
-+ g_free (cachedir);
-+ }
-+ g_free (filename);
-+ } else {
-+ g_debug ("Could not get user information for %s", worker->priv->username);
++ if (success == TRUE) {
++ char *cachedir;
++ char *cachefile;
++
++ cachedir = gdm_session_worker_create_cachedir (worker);
++ g_debug ("Copying user dmrc file to cache");
++ cachefile = g_build_filename (cachedir, "dmrc", NULL);
++ gdm_cache_copy_file (worker, filename, cachefile);
++ g_free (cachefile);
++ g_free (cachedir);
+ }
+
+ return success;
@@ -226,12 +274,14 @@
gdm_session_worker_accredit_user (GdmSessionWorker *worker,
GError **error)
{
-@@ -1932,6 +1997,14 @@ gdm_session_worker_accredit_user (GdmSes
+@@ -1944,6 +1997,16 @@
attempt_to_load_user_settings (worker, worker->priv->username,
TRUE);
}
+
-+ if (!gdm_session_settings_is_loaded (worker->priv->user_settings) && run_gdm_first_time_login_helper (worker, session_name, language_name, layout_name)) {
++ if (gdm_check_first_time_login (worker->priv->username) &&
++ !gdm_session_settings_is_loaded (worker->priv->user_settings) &&
++ run_gdm_first_time_login_helper (worker, session_name, language_name, layout_name)) {
+ g_debug ("Now loading settings created by gdm-first-time-login-helper.");
+ gdm_session_settings_first_time_load (worker->priv->user_settings, worker->priv->username, NULL);
+ } else {
@@ -241,10 +291,47 @@
g_free (session_name);
g_free (language_name);
g_free (layout_name);
-diff -ruN gdm-2.31.1.orig/gui/simple-greeter/gdm-chooser-widget.c gdm-2.31.1/gui/simple-greeter/gdm-chooser-widget.c
---- gdm-2.31.1.orig/gui/simple-greeter/gdm-chooser-widget.c 2010-06-11 07:15:38.755719654 -0400
-+++ gdm-2.31.1/gui/simple-greeter/gdm-chooser-widget.c 2010-06-11 14:52:59.310091827 -0400
-@@ -1174,6 +1174,11 @@
+diff -ruN gdm-2.31.2.orig/daemon/gdm-simple-slave.c gdm-2.31.2/daemon/gdm-simple-slave.c
+--- gdm-2.31.2.orig/daemon/gdm-simple-slave.c 2010-08-04 15:10:51.926640966 +0500
++++ gdm-2.31.2/daemon/gdm-simple-slave.c 2010-08-04 15:11:09.643663330 +0500
+@@ -1173,6 +1173,8 @@
+ res = gdm_slave_connect_to_x11_display (GDM_SLAVE (slave));
+ if (res) {
+ gboolean enabled;
++ gboolean first_time_login;
++ char *username;
+ int delay;
+
+ /* FIXME: handle wait-for-go */
+@@ -1181,8 +1183,14 @@
+
+ delay = 0;
+ enabled = FALSE;
+- gdm_slave_get_timed_login_details (GDM_SLAVE (slave), &enabled, NULL, &delay);
+- if (! enabled || delay > 0) {
++ first_time_login = FALSE;
++ username = NULL;
++ gdm_slave_get_timed_login_details (GDM_SLAVE (slave), &enabled, &username, &delay);
++
++ if (username && username[0])
++ first_time_login = gdm_check_first_time_login (username);
++
++ if (! enabled || delay > 0 || first_time_login) {
+ start_greeter (slave);
+ create_new_session (slave);
+ } else {
+@@ -1190,6 +1198,7 @@
+ gdm_slave_run_script (GDM_SLAVE (slave), GDMCONFDIR "/Init", GDM_USERNAME);
+ reset_session (slave);
+ }
++ g_free(username);
+ } else {
+ if (slave->priv->connection_attempts >= MAX_CONNECT_ATTEMPTS) {
+ g_warning ("Unable to connect to display after %d tries - bailing out", slave->priv->connection_attempts);
+diff -ruN gdm-2.31.2.orig/gui/simple-greeter/gdm-chooser-widget.c gdm-2.31.2/gui/simple-greeter/gdm-chooser-widget.c
+--- gdm-2.31.2.orig/gui/simple-greeter/gdm-chooser-widget.c 2010-08-04 15:10:50.766808455 +0500
++++ gdm-2.31.2/gui/simple-greeter/gdm-chooser-widget.c 2010-08-04 15:10:58.746381939 +0500
+@@ -1343,6 +1343,11 @@
widget->priv->in_use_message = NULL;
}
@@ -256,10 +343,10 @@
G_OBJECT_CLASS (gdm_chooser_widget_parent_class)->dispose (object);
}
-diff -ruN gdm-2.31.1.orig/gui/simple-greeter/gdm-first-time-login-helper.c gdm-2.31.1/gui/simple-greeter/gdm-first-time-login-helper.c
---- gdm-2.31.1.orig/gui/simple-greeter/gdm-first-time-login-helper.c 1969-12-31 19:00:00.000000000 -0500
-+++ gdm-2.31.1/gui/simple-greeter/gdm-first-time-login-helper.c 2010-06-11 14:52:59.316640013 -0400
-@@ -0,0 +1,262 @@
+diff -ruN gdm-2.31.2.orig/gui/simple-greeter/gdm-first-time-login-helper.c gdm-2.31.2/gui/simple-greeter/gdm-first-time-login-helper.c
+--- gdm-2.31.2.orig/gui/simple-greeter/gdm-first-time-login-helper.c 1970-01-01 05:00:00.000000000 +0500
++++ gdm-2.31.2/gui/simple-greeter/gdm-first-time-login-helper.c 2010-08-04 15:10:58.747285283 +0500
+@@ -0,0 +1,276 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
+ * Copyright (c) 2010, Oracle and/or its affiliates.
@@ -325,6 +412,7 @@
+ gtk_message_dialog_set_markup ((GtkMessageDialog *)dialog, display_text);
+ g_free(display_text);
+ gtk_window_set_title (GTK_WINDOW (dialog), title);
++ gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER_ALWAYS);
+ image = gtk_image_new_from_icon_name ("user-info", GTK_ICON_SIZE_DIALOG);
+ gtk_message_dialog_set_image ((GtkMessageDialog *)dialog, image);
+ gtk_widget_show (image);
@@ -462,6 +550,18 @@
+ return is_saved;
+}
+
++static void
++set_normal_cursor (void)
++{
++ GdkWindow *root_window;
++ GdkCursor *cursor;
++
++ root_window = gdk_screen_get_root_window (gdk_screen_get_default ());
++ cursor = gdk_cursor_new (GDK_LEFT_PTR);
++ gdk_window_set_cursor (root_window, cursor);
++ gdk_cursor_unref (cursor);
++}
++
+int
+main (int argc, char *argv[])
+{
@@ -486,6 +586,7 @@
+
+ gtk_init (&argc, &argv);
+
++ set_normal_cursor();
+ run_dialog(480, 120, MESSAGE, NULL, &dialog_feedback);
+ if (!dialog_feedback)
+ return (ret);
@@ -522,10 +623,10 @@
+ g_free(lang_name);
+ return (ret);
+}
-diff -ruN gdm-2.31.1.orig/gui/simple-greeter/gdm-language-chooser-dialog.c gdm-2.31.1/gui/simple-greeter/gdm-language-chooser-dialog.c
---- gdm-2.31.1.orig/gui/simple-greeter/gdm-language-chooser-dialog.c 2010-06-11 07:15:38.740551819 -0400
-+++ gdm-2.31.1/gui/simple-greeter/gdm-language-chooser-dialog.c 2010-06-11 14:52:59.313315771 -0400
-@@ -71,6 +71,17 @@ gdm_language_chooser_dialog_set_current_
+diff -ruN gdm-2.31.2.orig/gui/simple-greeter/gdm-language-chooser-dialog.c gdm-2.31.2/gui/simple-greeter/gdm-language-chooser-dialog.c
+--- gdm-2.31.2.orig/gui/simple-greeter/gdm-language-chooser-dialog.c 2010-08-04 15:10:50.743786468 +0500
++++ gdm-2.31.2/gui/simple-greeter/gdm-language-chooser-dialog.c 2010-08-04 15:10:58.751940770 +0500
+@@ -71,6 +71,17 @@
gdm_language_chooser_widget_set_current_language_name (GDM_LANGUAGE_CHOOSER_WIDGET (dialog->priv->chooser_widget), language_name);
}
@@ -543,7 +644,7 @@
static void
gdm_language_chooser_dialog_size_request (GtkWidget *widget,
GtkRequisition *requisition)
-@@ -164,7 +175,7 @@ gdm_language_chooser_dialog_init (GdmLan
+@@ -164,7 +175,7 @@
dialog);
gtk_dialog_add_buttons (GTK_DIALOG (dialog),
@@ -552,9 +653,9 @@
GTK_STOCK_OK, GTK_RESPONSE_OK,
NULL);
-diff -ruN gdm-2.31.1.orig/gui/simple-greeter/gdm-language-chooser-dialog.h gdm-2.31.1/gui/simple-greeter/gdm-language-chooser-dialog.h
---- gdm-2.31.1.orig/gui/simple-greeter/gdm-language-chooser-dialog.h 2010-06-11 07:15:38.753646630 -0400
-+++ gdm-2.31.1/gui/simple-greeter/gdm-language-chooser-dialog.h 2010-06-11 14:52:59.313780304 -0400
+diff -ruN gdm-2.31.2.orig/gui/simple-greeter/gdm-language-chooser-dialog.h gdm-2.31.2/gui/simple-greeter/gdm-language-chooser-dialog.h
+--- gdm-2.31.2.orig/gui/simple-greeter/gdm-language-chooser-dialog.h 2010-08-04 15:10:50.761828724 +0500
++++ gdm-2.31.2/gui/simple-greeter/gdm-language-chooser-dialog.h 2010-08-04 15:10:58.763479350 +0500
@@ -53,6 +53,8 @@
char * gdm_language_chooser_dialog_get_current_language_name (GdmLanguageChooserDialog *dialog);
void gdm_language_chooser_dialog_set_current_language_name (GdmLanguageChooserDialog *dialog,
@@ -564,10 +665,10 @@
G_END_DECLS
-diff -ruN gdm-2.31.1.orig/gui/simple-greeter/gdm-language-chooser-widget.c gdm-2.31.1/gui/simple-greeter/gdm-language-chooser-widget.c
---- gdm-2.31.1.orig/gui/simple-greeter/gdm-language-chooser-widget.c 2010-06-11 07:15:38.755026998 -0400
-+++ gdm-2.31.1/gui/simple-greeter/gdm-language-chooser-widget.c 2010-06-11 14:52:59.314323133 -0400
-@@ -248,6 +248,10 @@
+diff -ruN gdm-2.31.2.orig/gui/simple-greeter/gdm-language-chooser-widget.c gdm-2.31.2/gui/simple-greeter/gdm-language-chooser-widget.c
+--- gdm-2.31.2.orig/gui/simple-greeter/gdm-language-chooser-widget.c 2010-08-04 15:10:50.768239168 +0500
++++ gdm-2.31.2/gui/simple-greeter/gdm-language-chooser-widget.c 2010-08-04 15:10:58.776327976 +0500
+@@ -250,6 +250,10 @@
gdm_chooser_widget_set_separator_position (GDM_CHOOSER_WIDGET (widget),
GDM_CHOOSER_WIDGET_POSITION_TOP);
@@ -578,10 +679,10 @@
}
static void
-diff -ruN gdm-2.31.1.orig/gui/simple-greeter/gdm-layout-chooser-dialog.c gdm-2.31.1/gui/simple-greeter/gdm-layout-chooser-dialog.c
---- gdm-2.31.1.orig/gui/simple-greeter/gdm-layout-chooser-dialog.c 2010-06-11 07:15:38.756735266 -0400
-+++ gdm-2.31.1/gui/simple-greeter/gdm-layout-chooser-dialog.c 2010-06-11 14:52:59.315037893 -0400
-@@ -71,6 +71,17 @@ gdm_layout_chooser_dialog_set_current_la
+diff -ruN gdm-2.31.2.orig/gui/simple-greeter/gdm-layout-chooser-dialog.c gdm-2.31.2/gui/simple-greeter/gdm-layout-chooser-dialog.c
+--- gdm-2.31.2.orig/gui/simple-greeter/gdm-layout-chooser-dialog.c 2010-08-04 15:10:50.747717767 +0500
++++ gdm-2.31.2/gui/simple-greeter/gdm-layout-chooser-dialog.c 2010-08-04 15:10:58.782283518 +0500
+@@ -71,6 +71,17 @@
gdm_layout_chooser_widget_set_current_layout_name (GDM_LAYOUT_CHOOSER_WIDGET (dialog->priv->chooser_widget), layout_name);
}
@@ -599,7 +700,7 @@
static void
gdm_layout_chooser_dialog_size_request (GtkWidget *widget,
GtkRequisition *requisition)
-@@ -138,6 +149,7 @@ queue_response (GdmLayoutChooserDialog *
+@@ -138,6 +149,7 @@
static void
gdm_layout_chooser_dialog_init (GdmLayoutChooserDialog *dialog)
{
@@ -607,7 +708,7 @@
dialog->priv = GDM_LAYOUT_CHOOSER_DIALOG_GET_PRIVATE (dialog);
-@@ -145,8 +157,12 @@ gdm_layout_chooser_dialog_init (GdmLayou
+@@ -145,8 +157,12 @@
gdm_chooser_widget_set_hide_inactive_items (GDM_CHOOSER_WIDGET (dialog->priv->chooser_widget),
FALSE);
@@ -622,7 +723,7 @@
gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), dialog->priv->chooser_widget);
g_signal_connect_swapped (G_OBJECT (dialog->priv->chooser_widget),
-@@ -154,7 +170,7 @@ gdm_layout_chooser_dialog_init (GdmLayou
+@@ -154,7 +170,7 @@
dialog);
gtk_dialog_add_buttons (GTK_DIALOG (dialog),
@@ -631,9 +732,9 @@
GTK_STOCK_OK, GTK_RESPONSE_OK,
NULL);
-diff -ruN gdm-2.31.1.orig/gui/simple-greeter/gdm-layout-chooser-dialog.h gdm-2.31.1/gui/simple-greeter/gdm-layout-chooser-dialog.h
---- gdm-2.31.1.orig/gui/simple-greeter/gdm-layout-chooser-dialog.h 2010-06-11 07:15:38.746534465 -0400
-+++ gdm-2.31.1/gui/simple-greeter/gdm-layout-chooser-dialog.h 2010-06-11 14:52:59.315471954 -0400
+diff -ruN gdm-2.31.2.orig/gui/simple-greeter/gdm-layout-chooser-dialog.h gdm-2.31.2/gui/simple-greeter/gdm-layout-chooser-dialog.h
+--- gdm-2.31.2.orig/gui/simple-greeter/gdm-layout-chooser-dialog.h 2010-08-04 15:10:50.764176346 +0500
++++ gdm-2.31.2/gui/simple-greeter/gdm-layout-chooser-dialog.h 2010-08-04 15:10:58.783055208 +0500
@@ -53,6 +53,7 @@
char * gdm_layout_chooser_dialog_get_current_layout_name (GdmLayoutChooserDialog *dialog);
void gdm_layout_chooser_dialog_set_current_layout_name (GdmLayoutChooserDialog *dialog,
@@ -642,10 +743,10 @@
G_END_DECLS
-diff -ruN gdm-2.31.1.orig/gui/simple-greeter/gdm-layout-chooser-widget.c gdm-2.31.1/gui/simple-greeter/gdm-layout-chooser-widget.c
---- gdm-2.31.1.orig/gui/simple-greeter/gdm-layout-chooser-widget.c 2010-06-11 07:15:38.741291577 -0400
-+++ gdm-2.31.1/gui/simple-greeter/gdm-layout-chooser-widget.c 2010-06-11 14:52:59.315951894 -0400
-@@ -174,6 +174,10 @@
+diff -ruN gdm-2.31.2.orig/gui/simple-greeter/gdm-layout-chooser-widget.c gdm-2.31.2/gui/simple-greeter/gdm-layout-chooser-widget.c
+--- gdm-2.31.2.orig/gui/simple-greeter/gdm-layout-chooser-widget.c 2010-08-04 15:10:50.762981662 +0500
++++ gdm-2.31.2/gui/simple-greeter/gdm-layout-chooser-widget.c 2010-08-04 15:10:58.785260833 +0500
+@@ -176,6 +176,10 @@
gdm_chooser_widget_set_separator_position (GDM_CHOOSER_WIDGET (widget),
GDM_CHOOSER_WIDGET_POSITION_TOP);
@@ -656,9 +757,9 @@
}
static void
-diff -ruN gdm-2.31.1.orig/gui/simple-greeter/gdm-session-chooser-dialog.c gdm-2.31.1/gui/simple-greeter/gdm-session-chooser-dialog.c
---- gdm-2.31.1.orig/gui/simple-greeter/gdm-session-chooser-dialog.c 1969-12-31 19:00:00.000000000 -0500
-+++ gdm-2.31.1/gui/simple-greeter/gdm-session-chooser-dialog.c 2010-06-11 14:52:59.317196282 -0400
+diff -ruN gdm-2.31.2.orig/gui/simple-greeter/gdm-session-chooser-dialog.c gdm-2.31.2/gui/simple-greeter/gdm-session-chooser-dialog.c
+--- gdm-2.31.2.orig/gui/simple-greeter/gdm-session-chooser-dialog.c 1970-01-01 05:00:00.000000000 +0500
++++ gdm-2.31.2/gui/simple-greeter/gdm-session-chooser-dialog.c 2010-08-04 15:10:58.785902411 +0500
@@ -0,0 +1,216 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@@ -876,9 +977,9 @@
+
+ return GTK_WIDGET (object);
+}
-diff -ruN gdm-2.31.1.orig/gui/simple-greeter/gdm-session-chooser-dialog.h gdm-2.31.1/gui/simple-greeter/gdm-session-chooser-dialog.h
---- gdm-2.31.1.orig/gui/simple-greeter/gdm-session-chooser-dialog.h 1969-12-31 19:00:00.000000000 -0500
-+++ gdm-2.31.1/gui/simple-greeter/gdm-session-chooser-dialog.h 2010-06-11 14:52:59.317609062 -0400
+diff -ruN gdm-2.31.2.orig/gui/simple-greeter/gdm-session-chooser-dialog.h gdm-2.31.2/gui/simple-greeter/gdm-session-chooser-dialog.h
+--- gdm-2.31.2.orig/gui/simple-greeter/gdm-session-chooser-dialog.h 1970-01-01 05:00:00.000000000 +0500
++++ gdm-2.31.2/gui/simple-greeter/gdm-session-chooser-dialog.h 2010-08-04 15:10:58.786379025 +0500
@@ -0,0 +1,64 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@@ -944,9 +1045,9 @@
+G_END_DECLS
+
+#endif /* __GDM_SESSION_CHOOSER_DIALOG_H */
-diff -ruN gdm-2.31.1.orig/gui/simple-greeter/gdm-session-chooser-widget.c gdm-2.31.1/gui/simple-greeter/gdm-session-chooser-widget.c
---- gdm-2.31.1.orig/gui/simple-greeter/gdm-session-chooser-widget.c 1969-12-31 19:00:00.000000000 -0500
-+++ gdm-2.31.1/gui/simple-greeter/gdm-session-chooser-widget.c 2010-06-11 14:52:59.318130861 -0400
+diff -ruN gdm-2.31.2.orig/gui/simple-greeter/gdm-session-chooser-widget.c gdm-2.31.2/gui/simple-greeter/gdm-session-chooser-widget.c
+--- gdm-2.31.2.orig/gui/simple-greeter/gdm-session-chooser-widget.c 1970-01-01 05:00:00.000000000 +0500
++++ gdm-2.31.2/gui/simple-greeter/gdm-session-chooser-widget.c 2010-08-04 15:10:58.786928675 +0500
@@ -0,0 +1,210 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@@ -1158,9 +1259,9 @@
+
+ return GTK_WIDGET (object);
+}
-diff -ruN gdm-2.31.1.orig/gui/simple-greeter/gdm-session-chooser-widget.h gdm-2.31.1/gui/simple-greeter/gdm-session-chooser-widget.h
---- gdm-2.31.1.orig/gui/simple-greeter/gdm-session-chooser-widget.h 1969-12-31 19:00:00.000000000 -0500
-+++ gdm-2.31.1/gui/simple-greeter/gdm-session-chooser-widget.h 2010-06-11 14:52:59.318508546 -0400
+diff -ruN gdm-2.31.2.orig/gui/simple-greeter/gdm-session-chooser-widget.h gdm-2.31.2/gui/simple-greeter/gdm-session-chooser-widget.h
+--- gdm-2.31.2.orig/gui/simple-greeter/gdm-session-chooser-widget.h 1970-01-01 05:00:00.000000000 +0500
++++ gdm-2.31.2/gui/simple-greeter/gdm-session-chooser-widget.h 2010-08-04 15:10:58.787338809 +0500
@@ -0,0 +1,61 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+ *
@@ -1223,10 +1324,10 @@
+G_END_DECLS
+
+#endif /* __GDM_SESSION_CHOOSER_WIDGET_H */
-diff -ruN gdm-2.31.1.orig/gui/simple-greeter/Makefile.am gdm-2.31.1/gui/simple-greeter/Makefile.am
---- gdm-2.31.1.orig/gui/simple-greeter/Makefile.am 2010-06-11 07:15:38.746234174 -0400
-+++ gdm-2.31.1/gui/simple-greeter/Makefile.am 2010-06-11 14:52:59.308364532 -0400
-@@ -269,7 +269,8 @@
+diff -ruN gdm-2.31.2.orig/gui/simple-greeter/Makefile.am gdm-2.31.2/gui/simple-greeter/Makefile.am
+--- gdm-2.31.2.orig/gui/simple-greeter/Makefile.am 2010-08-04 15:10:50.763317372 +0500
++++ gdm-2.31.2/gui/simple-greeter/Makefile.am 2010-08-04 15:10:58.723556829 +0500
+@@ -281,7 +281,8 @@
$(NULL)
libexec_PROGRAMS = \
@@ -1236,7 +1337,7 @@
gdm_simple_greeter_SOURCES = \
greeter-main.c \
-@@ -334,6 +335,62 @@
+@@ -348,6 +349,62 @@
$(DEVKIT_POWER_LIBS) \
$(NULL)