diff options
Diffstat (limited to 'plugins/groupwise-features')
-rw-r--r-- | plugins/groupwise-features/ChangeLog | 10 | ||||
-rw-r--r-- | plugins/groupwise-features/proxy-login.c | 21 |
2 files changed, 22 insertions, 9 deletions
diff --git a/plugins/groupwise-features/ChangeLog b/plugins/groupwise-features/ChangeLog index 214d115e40..01fe37d5ee 100644 --- a/plugins/groupwise-features/ChangeLog +++ b/plugins/groupwise-features/ChangeLog @@ -1,3 +1,13 @@ +2008-10-01 Milan Crha <mcrha@redhat.com> + + ** Fix for bug #511947 + + * proxy-login.c: (proxy_login_get_cnc): + Pass in optional parent for password dialog. + * proxy-login.c: (proxy_soap_login), (proxy_login_update_tree), + (org_gnome_proxy_account_login): Adapt to the above change and check + for NULL values to prevent runtime warnings. + 2008-09-25 Philip Withnall <philip@tecnocode.co.uk> ** Fix for bug #553148 diff --git a/plugins/groupwise-features/proxy-login.c b/plugins/groupwise-features/proxy-login.c index 58a7cbc810..383e940fbe 100644 --- a/plugins/groupwise-features/proxy-login.c +++ b/plugins/groupwise-features/proxy-login.c @@ -219,7 +219,7 @@ proxy_get_password (EAccount *account, char **user_name, char **password) } static EGwConnection * -proxy_login_get_cnc (EAccount *account) +proxy_login_get_cnc (EAccount *account, GtkWindow *password_dlg_parrent) { EGwConnection *cnc; CamelURL *url; @@ -254,7 +254,7 @@ proxy_login_get_cnc (EAccount *account) if (!password) password = e_passwords_ask_password (prompt, "Groupwise", key, prompt, - E_PASSWORDS_REMEMBER_FOREVER|E_PASSWORDS_SECRET, &remember, NULL); + E_PASSWORDS_REMEMBER_FOREVER|E_PASSWORDS_SECRET, &remember, password_dlg_parrent); g_free (prompt); cnc = e_gw_connection_new (uri, url->user, password); @@ -333,7 +333,7 @@ proxy_soap_login (char *email) } srcAccount = pld->account; - cnc = proxy_login_get_cnc(srcAccount); + cnc = proxy_login_get_cnc (srcAccount, NULL); proxy_get_password (srcAccount, &user_name, &password); proxy_cnc = e_gw_connection_get_proxy_connection (cnc, user_name, password, email, &permissions); @@ -444,10 +444,11 @@ proxy_login_update_tree (void) EGwConnection *cnc; proxyLoginPrivate *priv = pld->priv; gchar *file_name = e_icon_factory_get_icon_filename ("stock_person", 48); - broken_image = gdk_pixbuf_new_from_file (file_name, NULL); + broken_image = file_name ? gdk_pixbuf_new_from_file (file_name, NULL) : NULL; - cnc = proxy_login_get_cnc(pld->account); - e_gw_connection_get_proxy_list (cnc, &proxy_list); + cnc = proxy_login_get_cnc (pld->account, priv->main ? (GTK_WINDOW (gtk_widget_get_toplevel (priv->main))) : NULL); + if (cnc) + e_gw_connection_get_proxy_list (cnc, &proxy_list); gtk_tree_store_clear (priv->store); if (proxy_list != NULL) { @@ -465,7 +466,8 @@ proxy_login_update_tree (void) if (broken_image) g_object_unref (broken_image); - g_object_unref (cnc); + if (cnc) + g_object_unref (cnc); } void @@ -477,8 +479,9 @@ org_gnome_proxy_account_login (EPopup *ep, EPopupItem *p, void *data) char *gladefile; /* This pops-up the password dialog in case the User has forgot-passwords explicitly */ - cnc = proxy_login_get_cnc (mail_config_get_account_by_source_url (uri)); - g_object_unref (cnc); + cnc = proxy_login_get_cnc (mail_config_get_account_by_source_url (uri), NULL); + if (cnc) + g_object_unref (cnc); pld = proxy_login_new(); priv = pld->priv; |