Mercurial > pidgin.yaz
diff finch/gntblist.c @ 22190:bcaf4a037704
Init and uninit the buddylist managers at appropriate times.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Wed, 23 Jan 2008 21:46:54 +0000 |
parents | 8509419a666c |
children | 1e103e1b845f |
line wrap: on
line diff
--- a/finch/gntblist.c Wed Jan 23 21:45:43 2008 +0000 +++ b/finch/gntblist.c Wed Jan 23 21:46:54 2008 +0000 @@ -299,6 +299,8 @@ { "default", N_("Default"), + NULL, + NULL, default_can_add_node, default_find_parent, default_create_tooltip, @@ -1827,6 +1829,9 @@ PurpleBlistNode *node; PurpleBuddyList *list; + if (ggblist->manager->init) + ggblist->manager->init(); + if (strcmp(purple_prefs_get_string(PREF_ROOT "/sort_type"), "text") == 0) { gnt_tree_set_compare_func(GNT_TREE(ggblist->tree), (GCompareFunc)blist_node_compare_text); @@ -1923,6 +1928,9 @@ if (manager == NULL) manager = &default_manager; if (ggblist->manager != manager) { + if (ggblist->manager->uninit) + ggblist->manager->uninit(); + ggblist->manager = manager; if (manager->can_add_node == NULL) manager->can_add_node = default_can_add_node; @@ -1937,6 +1945,7 @@ sel = gnt_tree_get_selection_data(GNT_TREE(ggblist->tree)); gnt_tree_remove_all(GNT_TREE(ggblist->tree)); + node = purple_blist_get_root(); for (; node; node = purple_blist_node_next(node, TRUE)) reset_blist_node_ui_data(node);