finch/gntblist.c

changeset 39695
f0f7abe70b49
parent 39694
4aed5fad4da9
child 39696
2ed6dd895984
--- a/finch/gntblist.c	Wed Jul 03 21:41:05 2019 -0400
+++ b/finch/gntblist.c	Wed Jul 03 21:51:50 2019 -0400
@@ -518,18 +518,6 @@
 	}
 }
 
-static void
-new_list(PurpleBuddyList *list)
-{
-	if (ggblist)
-		return;
-
-	ggblist = FINCH_BUDDY_LIST(list);
-	ggblist->manager = finch_blist_manager_find(purple_prefs_get_string(PREF_ROOT "/grouping"));
-	if (!ggblist->manager)
-		ggblist->manager = &default_manager;
-}
-
 static void destroy_list(PurpleBuddyList *list)
 {
 	if (ggblist == NULL)
@@ -2989,9 +2977,7 @@
 static void
 blist_show(PurpleBuddyList *list)
 {
-	if (ggblist == NULL)
-		new_list(list);
-	else if (ggblist->window) {
+	if (ggblist->window) {
 		gnt_window_present(ggblist->window);
 		return;
 	}
@@ -3147,6 +3133,16 @@
 static void
 finch_buddy_list_init(FinchBuddyList *self)
 {
+	if (!ggblist) {
+		/* The first buddy list object becomes the default. */
+		ggblist = self;
+	}
+
+	self->manager = finch_blist_manager_find(
+	        purple_prefs_get_string(PREF_ROOT "/grouping"));
+	if (!self->manager) {
+		self->manager = &default_manager;
+	}
 }
 
 static void
@@ -3155,7 +3151,6 @@
 	PurpleBuddyListClass *purple_blist_class;
 
 	purple_blist_class = PURPLE_BUDDY_LIST_CLASS(klass);
-	purple_blist_class->new_list = new_list;
 	purple_blist_class->new_node = new_node;
 	purple_blist_class->show = blist_show;
 	purple_blist_class->update = node_update;

mercurial