pidgin/gtkroomlist.c

changeset 28704
0c1d6f63740f
parent 26574
5954235b7438
child 30706
612b36b49058
--- a/pidgin/gtkroomlist.c	Sat Oct 17 00:37:04 2009 +0000
+++ b/pidgin/gtkroomlist.c	Mon Oct 19 22:56:27 2009 +0000
@@ -111,7 +111,18 @@
 static void dialog_select_account_cb(GObject *w, PurpleAccount *account,
 				     PidginRoomlistDialog *dialog)
 {
+	gboolean change = (account != dialog->account);
 	dialog->account = account;
+
+	if (change && dialog->roomlist) {
+		PidginRoomlist *rl = dialog->roomlist->ui_data;
+		if (rl->tree) {
+			gtk_widget_destroy(rl->tree);
+			rl->tree = NULL;
+		}
+		purple_roomlist_unref(dialog->roomlist);
+		dialog->roomlist = NULL;
+	}
 }
 
 static void list_button_cb(GtkButton *button, PidginRoomlistDialog *dialog)

mercurial