aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-config-druid.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/mail-config-druid.c')
-rw-r--r--mail/mail-config-druid.c24
1 files changed, 23 insertions, 1 deletions
diff --git a/mail/mail-config-druid.c b/mail/mail-config-druid.c
index 86977b5081..6982965105 100644
--- a/mail/mail-config-druid.c
+++ b/mail/mail-config-druid.c
@@ -340,6 +340,8 @@ incoming_next (GnomeDruidPage *page, GnomeDruid *druid, gpointer data)
gchar *source_url;
CamelURL *url;
+ config->have_auth_page = TRUE;
+
source_url = mail_config_druid_get_source_url (config);
url = camel_url_new (source_url, NULL);
g_free (source_url);
@@ -358,6 +360,7 @@ incoming_next (GnomeDruidPage *page, GnomeDruid *druid, gpointer data)
}
/* Otherwise, skip to transport page. */
+ config->have_auth_page = FALSE;
transport_page = glade_xml_get_widget (config->gui, "druidTransportPage");
gnome_druid_set_page (config->druid, GNOME_DRUID_PAGE (transport_page));
@@ -595,6 +598,24 @@ transport_next (GnomeDruidPage *page, GnomeDruid *druid, gpointer data)
return FALSE;
}
+static gboolean
+transport_back (GnomeDruidPage *page, GnomeDruid *druid, gpointer data)
+{
+ MailConfigDruid *config = data;
+
+ if (config->have_auth_page) {
+ return FALSE;
+ } else {
+ /* jump to the source page, skipping over the auth page */
+ GtkWidget *widget;
+
+ widget = glade_xml_get_widget (config->gui, "druidSourcePage");
+ gnome_druid_set_page (config->druid, GNOME_DRUID_PAGE (widget));
+
+ return TRUE;
+ }
+}
+
static void
transport_changed (GtkWidget *widget, gpointer data)
{
@@ -801,7 +822,7 @@ static struct {
{ "druidTransportPage",
GTK_SIGNAL_FUNC (transport_next),
GTK_SIGNAL_FUNC (transport_prepare),
- GTK_SIGNAL_FUNC (NULL),
+ GTK_SIGNAL_FUNC (transport_back),
GTK_SIGNAL_FUNC (NULL) },
{ "druidManagementPage",
GTK_SIGNAL_FUNC (management_next),
@@ -894,6 +915,7 @@ construct (MailConfigDruid *druid)
gtk_signal_connect (GTK_OBJECT (druid->incoming_path), "changed", incoming_changed, druid);
druid->incoming_keep_mail = GTK_CHECK_BUTTON (glade_xml_get_widget (gui, "chkIncomingKeepMail"));
+ druid->have_auth_page = TRUE;
druid->auth_text = glade_xml_get_widget (gui, "htmlAuthentication");
druid->auth_type = GTK_OPTION_MENU (glade_xml_get_widget (gui, "omenuAuthType"));
druid->password = GTK_ENTRY (glade_xml_get_widget (gui, "txtAuthPasswd"));