im.pidgin.pidgin: 1db48062464daa0913a6b22ccd36ca90fef29f90
resiak at soc.pidgin.im
resiak at soc.pidgin.im
Sat Feb 16 09:45:42 EST 2008
-----------------------------------------------------------------
Revision: 1db48062464daa0913a6b22ccd36ca90fef29f90
Ancestor: dc53960d0e40861598072b15f5de1f6decbbd619
Author: resiak at soc.pidgin.im
Date: 2008-02-16T14:42:57
Branch: im.pidgin.pidgin
URL: http://d.pidgin.im/viewmtn/revision/info/1db48062464daa0913a6b22ccd36ca90fef29f90
Modified files:
pidgin/gtkblist.c
ChangeLog:
Don't clear account errors during account-error-changed emission. I can't
reproduce Stu's crash, but this fixes the error minidialog duplication I was
seeing when trying to reproduce it, and I believe the cause is the same.
References #4815
-------------- next part --------------
============================================================
--- pidgin/gtkblist.c 079a3f5cfa5d3df520c5207875ceb0c8b75f12d2
+++ pidgin/gtkblist.c 9a82011280f123f76282e230a1ba56029b16bcbe
@@ -4408,6 +4408,7 @@ headline_box_press_cb(GtkWidget *widget,
/***********************************/
#define OBJECT_DATA_KEY_ACCOUNT "account"
+#define DO_NOT_CLEAR_ERROR "do-not-clear-error"
static gboolean
find_account_widget(GObject *widget,
@@ -4470,6 +4471,11 @@ remove_child_widget_by_account(GtkContai
{
GtkWidget *widget = find_child_widget_by_account(container, account);
if(widget) {
+ /* Since we are destroying the widget in response to a change in
+ * error, we should not clear the error.
+ */
+ g_object_set_data(G_OBJECT(widget), DO_NOT_CLEAR_ERROR,
+ GINT_TO_POINTER(TRUE));
gtk_widget_destroy(widget);
}
}
@@ -4495,7 +4501,12 @@ generic_error_destroy_cb(GtkObject *dial
PurpleAccount *account)
{
g_hash_table_remove(gtkblist->connection_errors, account);
- purple_account_clear_current_error(account);
+ /* If the error dialog is being destroyed in response to the
+ * account-error-changed signal, we don't want to clear the current
+ * error.
+ */
+ if (g_object_get_data(G_OBJECT(dialog), DO_NOT_CLEAR_ERROR) == NULL)
+ purple_account_clear_current_error(account);
}
#define SSL_FAQ_URI "http://d.pidgin.im/wiki/FAQssl"
More information about the Commits
mailing list