aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-shell-startup-wizard.c
diff options
context:
space:
mode:
Diffstat (limited to 'shell/e-shell-startup-wizard.c')
-rw-r--r--shell/e-shell-startup-wizard.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/shell/e-shell-startup-wizard.c b/shell/e-shell-startup-wizard.c
index b684044ac0..2ca03d7750 100644
--- a/shell/e-shell-startup-wizard.c
+++ b/shell/e-shell-startup-wizard.c
@@ -392,6 +392,19 @@ finish_func (GnomeDruidPage *page,
return TRUE;
}
+static gboolean
+back_finish_func (GnomeDruidPage *page,
+ GnomeDruid *druid,
+ SWData *data)
+{
+ if (data->import_page->running == 0)
+ gnome_druid_set_page (druid, GNOME_DRUID_PAGE (data->timezone_page->page));
+ else
+ return FALSE;
+
+ return TRUE;
+}
+
static void
connect_page (GtkWidget *page,
SWData *data)
@@ -528,6 +541,8 @@ prepare_importer_page (GnomeDruidPage *page,
int running = 0;
if (data->import_page->prepared == TRUE) {
+ if (data->import_page->running == 0)
+ gnome_druid_set_page (druid, GNOME_DRUID_PAGE (data->finish));
return TRUE;
}
@@ -776,6 +791,7 @@ e_shell_startup_wizard_create (void)
g_return_val_if_fail (data->start != NULL, FALSE);
g_return_val_if_fail (data->finish != NULL, FALSE);
g_signal_connect (data->finish, "finish", G_CALLBACK (finish_func), data);
+ g_signal_connect (data->finish, "back", G_CALLBACK (back_finish_func), data);
make_corba_dialog_pages (data);
g_return_val_if_fail (data->corba_wizard != CORBA_OBJECT_NIL, TRUE);