Mercurial > pidgin
changeset 21500:c6834071f6c5
merge of '1e67d8385e25c7400a4100b8af1048dd5c0a3f0f'
and '77ab949e0925a5edfc71240de20bb2a117c01ca7'
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Wed, 14 Nov 2007 12:47:33 +0000 |
parents | fa407f34864f (current diff) 040b4f646f35 (diff) |
children | dab9757b6308 |
files | |
diffstat | 1 files changed, 18 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/pidgin/gtkblist.c Wed Nov 14 12:44:45 2007 +0000 +++ b/pidgin/gtkblist.c Wed Nov 14 12:47:33 2007 +0000 @@ -110,13 +110,13 @@ typedef struct { - /** PidginScrollBook used to hold error minidialogs. Gets packed - * inside PidginBuddyList.error_buttons + /** Used to hold error minidialogs. Gets packed + * inside PidginBuddyList.error_buttons */ - GtkWidget *error_scrollbook; + PidginScrollBook *error_scrollbook; /** Pointer to the mini-dialog about having signed on elsewhere, if one - * is showing; @c NULL otherwise. + * is showing; @c NULL otherwise. */ PidginMiniDialog *signed_on_elsewhere; } PidginBuddyListPrivate; @@ -4538,8 +4538,8 @@ remove_generic_error_dialog(PurpleAccount *account) { PidginBuddyListPrivate *priv = PIDGIN_BUDDY_LIST_GET_PRIVATE(gtkblist); - remove_child_widget_by_account(GTK_CONTAINER(priv->error_scrollbook), - account); + remove_child_widget_by_account( + GTK_CONTAINER(priv->error_scrollbook->notebook), account); } @@ -4721,6 +4721,16 @@ else pidgin_blist_update_account_error_state(account, NULL); + /* Don't bother updating the error if it hasn't changed. This stops + * URGENT being repeatedly set for network errors whenever they try to + * reconnect. + */ + if ((old == new) || + (old != NULL && new != NULL && old->type == new->type + && g_str_equal(old->description, new->description)) + ) + return; + if (old) { if(old->type == PURPLE_CONNECTION_ERROR_NAME_IN_USE) remove_from_signed_on_elsewhere(account); @@ -5230,9 +5240,9 @@ gtk_box_pack_start(GTK_BOX(gtkblist->vbox), gtkblist->error_buttons, FALSE, FALSE, 0); gtk_container_set_border_width(GTK_CONTAINER(gtkblist->error_buttons), 0); - priv->error_scrollbook = pidgin_scroll_book_new(); + priv->error_scrollbook = PIDGIN_SCROLL_BOOK(pidgin_scroll_book_new()); gtk_box_pack_start(GTK_BOX(gtkblist->error_buttons), - priv->error_scrollbook, FALSE, FALSE, 0); + GTK_WIDGET(priv->error_scrollbook), FALSE, FALSE, 0); /* Add the statusbox */