summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2011-05-18 15:00:22 -0400
committerRay Strode <rstrode@redhat.com>2012-04-13 17:05:09 -0400
commit23db2f10fa0bd5adc9ac159df70c77129459468a (patch)
tree6e42eebd9caaeb8de64bdd6fb1408004f5effc0a
parentc4d4e539cbd86aa73604154112404c6eac556e2c (diff)
downloadgdm-23db2f10fa0bd5adc9ac159df70c77129459468a.tar.gz
initial-setup: perform copy from main loop
This way we continue to slave processes replies, etc, while the copy is going on.
-rw-r--r--gui/initial-setup/gdm-initial-setup.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/gui/initial-setup/gdm-initial-setup.c b/gui/initial-setup/gdm-initial-setup.c
index 926e4475..f72e884d 100644
--- a/gui/initial-setup/gdm-initial-setup.c
+++ b/gui/initial-setup/gdm-initial-setup.c
@@ -61,6 +61,8 @@ typedef struct {
#define OBJ(type,name) ((type)gtk_builder_get_object(setup->builder,(name)))
#define WID(name) OBJ(GtkWidget*,name)
+static void copy_account_data (SetupData *setup);
+static void begin_autologin (SetupData *setup);
static void connect_to_slave (SetupData *setup);
/* --- Welcome page --- */
@@ -1363,7 +1365,13 @@ prepare_location_page (SetupData *setup)
static void
close_cb (GtkAssistant *assi, gpointer data)
{
- gtk_main_quit ();
+ SetupData *setup = data;
+
+ g_settings_sync ();
+
+ copy_account_data (setup);
+
+ begin_autologin (setup);
}
static void
@@ -1385,7 +1393,7 @@ prepare_assistant (SetupData *setup)
g_signal_connect (G_OBJECT (setup->assistant), "prepare",
G_CALLBACK (prepare_cb), setup);
g_signal_connect (G_OBJECT (setup->assistant), "close",
- G_CALLBACK (close_cb), NULL);
+ G_CALLBACK (close_cb), setup);
connect_to_slave (setup);
prepare_welcome_page (setup);
@@ -1497,11 +1505,5 @@ main (int argc, char *argv[])
gtk_main ();
- g_settings_sync ();
-
- copy_account_data (setup);
-
- begin_autologin (setup);
-
return 0;
}