diff options
-rw-r--r-- | mail/ChangeLog | 6 | ||||
-rw-r--r-- | mail/mail-account-gui.c | 18 |
2 files changed, 17 insertions, 7 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index f65ee96cf3..3b5f604c6f 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,5 +1,11 @@ 2004-05-24 Not Zed <NotZed@Ximian.com> + * mail-account-gui.c (mail_account_gui_build_extra_conf): don't + enable the widget based on its writability if it is a dependent + option which is now disable. + (setup_toggle): return whether the widget is sensitive too. + #57171. + * em-popup.c (em_popup_target_new_select): only enable add sender if we also have 1 selected. #56663. diff --git a/mail/mail-account-gui.c b/mail/mail-account-gui.c index e3d02cf278..83605dbbfd 100644 --- a/mail/mail-account-gui.c +++ b/mail/mail-account-gui.c @@ -917,19 +917,22 @@ toggle_sensitivity (GtkToggleButton *toggle, GtkWidget *widget) gtk_widget_set_sensitive (widget, gtk_toggle_button_get_active (toggle)); } -static void +/* Returns true if the widget is enabled */ +static gboolean setup_toggle (GtkWidget *widget, const char *depname, MailAccountGui *gui) { GtkToggleButton *toggle; if (!strcmp (depname, "UNIMPLEMENTED")) { gtk_widget_set_sensitive (widget, FALSE); - return; + return FALSE; } toggle = g_hash_table_lookup (gui->extra_config, depname); g_signal_connect (toggle, "toggled", G_CALLBACK (toggle_sensitivity), widget); toggle_sensitivity (toggle, widget); + + return gtk_toggle_button_get_active(toggle); } void @@ -1019,6 +1022,7 @@ mail_account_gui_build_extra_conf (MailAccountGui *gui, const char *url_string) rows = main_table->nrows; for (i = 0; ; i++) { GtkWidget *enable_widget = NULL; + int enabled = TRUE; switch (entries[i].type) { case CAMEL_PROVIDER_CONF_SECTION_START: @@ -1107,8 +1111,8 @@ mail_account_gui_build_extra_conf (MailAccountGui *gui, const char *url_string) rows++; g_hash_table_insert (gui->extra_config, entries[i].name, checkbox); if (entries[i].depname) - setup_toggle (checkbox, entries[i].depname, gui); - + enabled = setup_toggle(checkbox, entries[i].depname, gui); + enable_widget = checkbox; break; } @@ -1153,7 +1157,7 @@ mail_account_gui_build_extra_conf (MailAccountGui *gui, const char *url_string) if (entries[i].depname) { setup_toggle (entry, entries[i].depname, gui); - setup_toggle (label, entries[i].depname, gui); + enabled = setup_toggle (label, entries[i].depname, gui); } g_hash_table_insert (gui->extra_config, entries[i].name, entry); @@ -1220,7 +1224,7 @@ mail_account_gui_build_extra_conf (MailAccountGui *gui, const char *url_string) if (entries[i].depname) { setup_toggle (checkbox, entries[i].depname, gui); setup_toggle (spin, entries[i].depname, gui); - setup_toggle (label, entries[i].depname, gui); + enabled = setup_toggle (label, entries[i].depname, gui); } enable_widget = hbox; @@ -1234,7 +1238,7 @@ mail_account_gui_build_extra_conf (MailAccountGui *gui, const char *url_string) goto done; } - if (enable_widget) + if (enabled && enable_widget) gtk_widget_set_sensitive(enable_widget, e_account_writable_option(gui->account, gui->source.provider->protocol, entries[i].name)); } |