# HG changeset patch # User Will Thompson # Date 1195043212 0 # Node ID e2e70f45307f0a18276e59ece60d48a1abe84d2b # Parent 0df3d6b11d05b7d867fcac29a34778ecf3a090c2 Remove account error dialogs from the scrollbook's notebook, not from the scrollbook. (I think the scrollbook's GtkContainer implementation is faulty.) Stops a bug where network_error mini-dialogs proliferate whenever you auto-reconnect, which datallah noticed. diff -r 0df3d6b11d05 -r e2e70f45307f pidgin/gtkblist.c --- a/pidgin/gtkblist.c Wed Nov 14 12:16:30 2007 +0000 +++ b/pidgin/gtkblist.c Wed Nov 14 12:26:52 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); } @@ -5230,9 +5230,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 */