--- a/pidgin/gtkaccount.c Fri Aug 27 02:34:03 2021 -0500
+++ b/pidgin/gtkaccount.c Thu Sep 02 20:18:36 2021 -0500
@@ -49,6 +49,13 @@
@@ -1216,12 +1223,6 @@
-cancel_account_prefs_cb(GtkWidget *w, AccountPrefsDialog *dialog)
- account_win_destroy_cb(NULL, NULL, dialog);
account_register_cb(PurpleAccount *account, gboolean succeeded, void *user_data)
@@ -1239,7 +1240,7 @@
-ok_account_prefs_cb(GtkWidget *w, AccountPrefsDialog *dialog)
+account_prefs_save(AccountPrefsDialog *dialog) PurpleProxyInfo *proxy_info = NULL;
@@ -1497,6 +1498,22 @@
+account_prefs_response_cb(GtkDialog *dialog, gint response_id, gpointer data) { + AccountPrefsDialog *window = (AccountPrefsDialog *)data; + account_prefs_save(window); + account_win_destroy_cb(NULL, NULL, window); static const GtkTargetEntry dnd_targets[] = {
@@ -1549,8 +1566,10 @@
dialog->window = win = pidgin_dialog_new((type == PIDGIN_ADD_ACCOUNT_DIALOG) ? _("Add Account") : _("Modify Account"),
- g_signal_connect(G_OBJECT(win), "delete_event",
- G_CALLBACK(account_win_destroy_cb), dialog);
+ g_signal_connect(win, "delete_event", G_CALLBACK(account_win_destroy_cb), + g_signal_connect(win, "response", G_CALLBACK(account_prefs_response_cb), main_vbox = pidgin_dialog_get_vbox_with_properties(GTK_DIALOG(win), FALSE, 6);
@@ -1595,18 +1614,15 @@
add_voice_options(dialog);
- pidgin_dialog_add_button(GTK_DIALOG(win), _("_Cancel"),
- G_CALLBACK(cancel_account_prefs_cb), dialog);
- button = pidgin_dialog_add_button(GTK_DIALOG(win),
- (type == PIDGIN_ADD_ACCOUNT_DIALOG) ? _("_Add") : _("_Save"),
- G_CALLBACK(ok_account_prefs_cb),
- if (dialog->account == NULL)
- gtk_widget_set_sensitive(button, FALSE);
- dialog->ok_button = button;
+ gtk_dialog_add_button(GTK_DIALOG(win), _("_Cancel"), RESPONSE_CLOSE); + dialog->ok_button = gtk_dialog_add_button(GTK_DIALOG(win), + (type == PIDGIN_ADD_ACCOUNT_DIALOG) ? _("_Add") : _("_Save"), + if (dialog->account == NULL) { + gtk_widget_set_sensitive(dialog->ok_button, FALSE); gtk_drag_dest_set(dialog->window,
@@ -1919,12 +1935,6 @@
-add_account_cb(GtkWidget *w, AccountsWindow *dialog)
- pidgin_account_dialog_show(PIDGIN_ADD_ACCOUNT_DIALOG, NULL);
modify_account_sel(GtkTreeModel *model, GtkTreePath *path,
GtkTreeIter *iter, gpointer data)
@@ -1937,7 +1947,7 @@
-modify_account_cb(GtkWidget *w, AccountsWindow *dialog)
+modify_account(AccountsWindow *dialog) GtkTreeSelection *selection;
@@ -1976,7 +1986,7 @@
-ask_delete_account_cb(GtkWidget *w, AccountsWindow *dialog)
+ask_delete_account(AccountsWindow *dialog) GtkTreeSelection *selection;
@@ -1987,12 +1997,27 @@
-close_accounts_cb(GtkWidget *w, AccountsWindow *dialog)
- pidgin_accounts_window_hide();
+accedit_win_response_cb(GtkDialog *dialog, guint response, gpointer data) { + AccountsWindow *window = data; + pidgin_account_dialog_show(PIDGIN_ADD_ACCOUNT_DIALOG, NULL); + modify_account(window); + ask_delete_account(window); + pidgin_accounts_window_hide();
enabled_cb(GtkCellRendererToggle *renderer, gchar *path_str,
@@ -2347,7 +2372,6 @@
if (accounts_window != NULL) {
@@ -2363,8 +2387,10 @@
dialog->window = win = pidgin_dialog_new(_("Accounts"), 0, "accounts", TRUE);
gtk_window_set_default_size(GTK_WINDOW(win), width, height);
- g_signal_connect(G_OBJECT(win), "delete_event",
- G_CALLBACK(accedit_win_destroy_cb), accounts_window);
+ g_signal_connect(win, "delete_event", G_CALLBACK(accedit_win_destroy_cb), + g_signal_connect(win, "response", G_CALLBACK(accedit_win_response_cb), vbox = pidgin_dialog_get_vbox_with_properties(GTK_DIALOG(win), FALSE, 12);
@@ -2374,26 +2400,22 @@
gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
- pidgin_dialog_add_button(GTK_DIALOG(win), _("_Add..."),
- G_CALLBACK(add_account_cb), dialog);
- button = pidgin_dialog_add_button(GTK_DIALOG(win), _("_Modify..."),
- G_CALLBACK(modify_account_cb), dialog);
- dialog->modify_button = button;
- gtk_widget_set_sensitive(button, FALSE);
- button = pidgin_dialog_add_button(GTK_DIALOG(win), _("_Delete"),
- G_CALLBACK(ask_delete_account_cb), dialog);
- dialog->delete_button = button;
- gtk_widget_set_sensitive(button, FALSE);
- pidgin_dialog_add_button(GTK_DIALOG(win), _("_Close"),
- G_CALLBACK(close_accounts_cb), dialog);
+ gtk_dialog_add_button(GTK_DIALOG(win), _("_Add..."), RESPONSE_ADD); + dialog->modify_button = gtk_dialog_add_button(GTK_DIALOG(win), + gtk_widget_set_sensitive(dialog->modify_button, FALSE); + dialog->delete_button = gtk_dialog_add_button(GTK_DIALOG(win), + gtk_widget_set_sensitive(dialog->delete_button, FALSE); + gtk_dialog_add_button(GTK_DIALOG(win), _("_Close"), RESPONSE_CLOSE); purple_signal_connect(pidgin_accounts_get_handle(), "account-modified",
PURPLE_CALLBACK(account_modified_cb), accounts_window);