im.pidgin.pidgin: 144eb45526482e0f97ca1deca742f41309005db7

resiak at soc.pidgin.im resiak at soc.pidgin.im
Mon Dec 17 07:15:48 EST 2007


-----------------------------------------------------------------
Revision: 144eb45526482e0f97ca1deca742f41309005db7
Ancestor: 8378d3112937bfaee9ab5aa40d6cad662d874615
Author: resiak at soc.pidgin.im
Date: 2007-12-17T12:09:19
Branch: im.pidgin.pidgin

Modified files:
        pidgin/gtkblist.c

ChangeLog: 

Dismissing the signed on elsewhere minidialog should clear all the errors;
otherwise the minidialog comes back whenever you restart.  (Other errors are
already cleared when you close their minidialog.)

-------------- next part --------------
============================================================
--- pidgin/gtkblist.c	9dd63f2810bc42c1b2dbdbf2af73731616e9161f
+++ pidgin/gtkblist.c	5bf533435ff1c691151d084855ba77027f314472
@@ -4643,6 +4643,13 @@ static void
 }
 
 static void
+clear_elsewhere_errors(PidginMiniDialog *mini_dialog,
+                       gpointer unused)
+{
+	elsewhere_foreach_account(mini_dialog, purple_account_clear_current_error);
+}
+
+static void
 ensure_signed_on_elsewhere_minidialog(PidginBuddyList *gtkblist)
 {
 	PidginBuddyListPrivate *priv = PIDGIN_BUDDY_LIST_GET_PRIVATE(gtkblist);
@@ -4657,6 +4664,12 @@ ensure_signed_on_elsewhere_minidialog(Pi
 	pidgin_mini_dialog_add_button(mini_dialog, _("Re-enable"),
 		reconnect_elsewhere_accounts, NULL);
 
+	/* Make dismissing the dialog clear the errors.  The "destroy" signal
+	 * does not appear to fire at quit, which is fortunate!
+	 */
+	g_signal_connect(G_OBJECT(mini_dialog), "destroy",
+		(GCallback) clear_elsewhere_errors, NULL);
+
 	add_error_dialog(gtkblist, GTK_WIDGET(mini_dialog));
 
 	/* Set priv->signed_on_elsewhere to NULL when the dialog is destroyed */


More information about the Commits mailing list