Mercurial > pidgin
changeset 24595:024818afb013
A patch to clean up authorization request related stuff. Fixes #7695.
committer: John Bailey <rekkanoryo@rekkanoryo.org>
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Sat, 06 Dec 2008 04:42:13 +0000 |
parents | 8b429520f6c6 |
children | 2cae2b346d72 |
files | finch/gntaccount.c pidgin/gtkaccount.c |
diffstat | 2 files changed, 14 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/finch/gntaccount.c Sat Dec 06 04:35:10 2008 +0000 +++ b/finch/gntaccount.c Sat Dec 06 04:42:13 2008 +0000 @@ -1069,6 +1069,8 @@ _("Authorize"), auth_cb, _("Deny"), deny_cb); } + g_signal_connect(G_OBJECT(uihandle), "destroy", + G_CALLBACK(purple_account_request_close), NULL); g_free(buffer); return uihandle; }
--- a/pidgin/gtkaccount.c Sat Dec 06 04:35:10 2008 +0000 +++ b/pidgin/gtkaccount.c Sat Dec 06 04:42:13 2008 +0000 @@ -2425,25 +2425,25 @@ }; static void -authorize_and_add_cb(struct auth_and_add *aa) +free_auth_and_add(struct auth_and_add *aa) { - aa->auth_cb(aa->data); - purple_blist_request_add_buddy(aa->account, aa->username, - NULL, aa->alias); - g_free(aa->username); g_free(aa->alias); g_free(aa); } static void +authorize_and_add_cb(struct auth_and_add *aa) +{ + aa->auth_cb(aa->data); + purple_blist_request_add_buddy(aa->account, aa->username, + NULL, aa->alias); +} + +static void deny_no_add_cb(struct auth_and_add *aa) { aa->deny_cb(aa->data); - - g_free(aa->username); - g_free(aa->alias); - g_free(aa); } static void * @@ -2492,7 +2492,7 @@ _("Authorize"), authorize_and_add_cb, _("Deny"), deny_no_add_cb, NULL); - g_object_set_data(G_OBJECT(alert), "auth_and_add", aa); + g_signal_connect_swapped(G_OBJECT(alert), "destroy", G_CALLBACK(free_auth_and_add), aa); } else { alert = pidgin_make_mini_dialog(gc, PIDGIN_STOCK_DIALOG_QUESTION, _("Authorize buddy?"), buffer, user_data, @@ -2501,6 +2501,8 @@ NULL); } pidgin_blist_add_alert(alert); + g_signal_connect(G_OBJECT(alert), "destroy", + G_CALLBACK(purple_account_request_close), NULL); g_free(buffer); @@ -2510,13 +2512,6 @@ static void pidgin_accounts_request_close(void *ui_handle) { - /* This is super ugly, but without API changes, this is how it works */ - struct auth_and_add *aa = g_object_get_data(G_OBJECT(ui_handle), "auth_and_add"); - if (aa != NULL) { - g_free(aa->username); - g_free(aa->alias); - g_free(aa); - } gtk_widget_destroy(GTK_WIDGET(ui_handle)); }