diff options
-rw-r--r-- | plugins/mail-account-disable/ChangeLog | 5 | ||||
-rw-r--r-- | plugins/mail-account-disable/mail-account-disable.c | 41 |
2 files changed, 24 insertions, 22 deletions
diff --git a/plugins/mail-account-disable/ChangeLog b/plugins/mail-account-disable/ChangeLog index 98bc5e3d61..15821d8513 100644 --- a/plugins/mail-account-disable/ChangeLog +++ b/plugins/mail-account-disable/ChangeLog @@ -1,3 +1,8 @@ +2006-08-21 Matthew Barnes <mbarnes@redhat.com> + + * mail-account-disable.c: + "Disable" did not work for "On This Computer" - fixes bug 350901. + 2006-01-06 Simon Zheng <simon.zheng@sun.com> * mail-account-disable.c: diff --git a/plugins/mail-account-disable/mail-account-disable.c b/plugins/mail-account-disable/mail-account-disable.c index 0967abaa48..aea7035a6e 100644 --- a/plugins/mail-account-disable/mail-account-disable.c +++ b/plugins/mail-account-disable/mail-account-disable.c @@ -56,28 +56,24 @@ popup_free (EPopup *ep, GSList *items, void *data) void mail_account_disable (EPopup *ep, EPopupItem *p, void *data) { - char *uri = data; - EAccount *account; - - account = mail_config_get_account_by_source_url (uri); - - if (account) { - MailComponent *component = mail_component_peek (); - - if (mail_config_has_proxies(account)) - mail_config_remove_account_proxies (account); - - account->enabled = !account->enabled; - e_account_list_change(mail_config_get_accounts(), account); - mail_component_remove_store_by_uri (component, account->source->url); + MailComponent *component; + EAccount *account = data; - if (account->parent_uid) - mail_config_remove_account (account); + g_assert (account != NULL); - mail_config_save_accounts(); - } + component = mail_component_peek (); - return ; + if (mail_config_has_proxies (account)) + mail_config_remove_account_proxies (account); + + account->enabled = !account->enabled; + e_account_list_change (mail_config_get_accounts (), account); + mail_component_remove_store_by_uri (component, account->source->url); + + if (account->parent_uid) + mail_config_remove_account (account); + + mail_config_save_accounts(); } void @@ -88,6 +84,9 @@ org_gnome_create_mail_account_disable (EPlugin *ep, EMPopupTargetFolder *t) account = mail_config_get_account_by_source_url (t->uri); + if (account == NULL) + return; + if (g_strrstr (t->uri,"groupwise://") && account->parent_uid) { popup_items[PROXY_LOGOUT].label = _(popup_items [PROXY_LOGOUT].label); menus = g_slist_prepend (menus, &popup_items [PROXY_LOGOUT]); @@ -97,8 +96,6 @@ org_gnome_create_mail_account_disable (EPlugin *ep, EMPopupTargetFolder *t) menus = g_slist_prepend (menus, &popup_items [ACCOUNT_DISABLE]); } - e_popup_add_items (t->target.popup, menus, NULL, popup_free, t->uri); - - return; + e_popup_add_items (t->target.popup, menus, NULL, popup_free, account); } |