diff options
Diffstat (limited to 'source3/utils/regedit_treeview.c')
-rw-r--r-- | source3/utils/regedit_treeview.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/source3/utils/regedit_treeview.c b/source3/utils/regedit_treeview.c index f2241e65f4..cfcf5f2500 100644 --- a/source3/utils/regedit_treeview.c +++ b/source3/utils/regedit_treeview.c @@ -236,6 +236,16 @@ void tree_view_clear(struct tree_view *view) view->current_items = NULL; } +static int item_comp(ITEM **a, ITEM **b) +{ + struct tree_node *nodea, *nodeb; + + nodea = item_userptr(*a); + nodeb = item_userptr(*b); + + return strcmp(nodea->name, nodeb->name); +} + WERROR tree_view_update(struct tree_view *view, struct tree_node *list) { ITEM **items; @@ -273,6 +283,8 @@ WERROR tree_view_update(struct tree_view *view, struct tree_node *list) set_item_userptr(items[i], node); } + TYPESAFE_QSORT(items, n_items, item_comp); + unpost_menu(view->menu); set_menu_items(view->menu, items); tree_view_free_current_items(view->current_items); |