diff src/buddy.c @ 4745:01cae9259e2f

[gaim-migrate @ 5060] fixes a bug where if all your accounts got logged off, thus making the buddy list disappear, you could never get it back. That makes for a bad time when your internet connection goes out (like mine did last night) also makes some of the prpl tooltips spiffier, and re-does some of the handling of away messages in jabber, thus making it cooler. committer: Tailor Script <tailor@pidgin.im>
author Nathan Walp <nwalp@pidgin.im>
date Thu, 13 Mar 2003 17:52:21 +0000
parents a0746ffce599
children 54fbd9769677
line wrap: on
line diff
--- a/src/buddy.c	Thu Mar 13 10:16:59 2003 +0000
+++ b/src/buddy.c	Thu Mar 13 17:52:21 2003 +0000
@@ -862,7 +862,7 @@
 	GtkTargetEntry gte[] = {{"GAIM_BUDDY", GTK_TARGET_SAME_APP, DRAG_ROW},
 				{"application/x-im-contact", 0, DRAG_BUDDY}};
 
-	if (gtkblist) {
+	if (gtkblist && gtkblist->window) {
 		gtk_widget_show(gtkblist->window);
 		return;
 	}
@@ -1206,6 +1206,17 @@
 static void gaim_gtk_blist_destroy(struct gaim_buddy_list *list)
 {
 	gtk_widget_destroy(gtkblist->window);
+
+	gtkblist->window = gtkblist->vbox = gtkblist->treeview = NULL;
+	gtkblist->treemodel = NULL;
+	gtkblist->idle_column = NULL;
+	gtkblist->warning_column = gtkblist->buddy_icon_column = NULL;
+	gtkblist->bbox = gtkblist->tipwindow = NULL;
+	protomenu = NULL;
+	awaymenu = NULL;
+	bpmenu = NULL;
+
+	gtkblist->timeout = 0;
 }
 
 static void gaim_gtk_blist_set_visible(struct gaim_buddy_list *list, gboolean show)
@@ -1270,7 +1281,7 @@
 	if (!docklet_count) {
 		if (connections) {
 			gaim_blist_set_visible(TRUE);
-		} else {
+		} else if(gtkblist && gtkblist->window) {
 			gtk_window_present(GTK_WINDOW(gtkblist->window));
 		}
 	}