Module: wine Branch: stable Commit: 8c54035a62ab902d8f8cd5d6bfc9aa4db5b5e171 URL: http://source.winehq.org/git/wine.git/?a=commit;h=8c54035a62ab902d8f8cd5d6bf... Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Fri Feb 17 18:09:53 2017 +0300 regedit: Sort each of top level branches separately. Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Hugh McMaster <hugh.mcmaster(a)outlook.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit a9bae9629c7496724fa5ed7fac222441df082024) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- programs/regedit/treeview.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/programs/regedit/treeview.c b/programs/regedit/treeview.c index 89afddd..f94041a 100644 --- a/programs/regedit/treeview.c +++ b/programs/regedit/treeview.c @@ -465,6 +465,17 @@ static BOOL RefreshTreeItem(HWND hwndTV, HTREEITEM hItem) return TRUE; } +static void treeview_sort_item(HWND hWnd, HTREEITEM item) +{ + HTREEITEM child = (HTREEITEM)SendMessageW(hWnd, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)item); + + while (child != NULL) { + treeview_sort_item(hWnd, child); + child = (HTREEITEM)SendMessageW(hWnd, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)child); + } + SendMessageW(hWnd, TVM_SORTCHILDREN, 0, (LPARAM)item); +} + BOOL RefreshTreeView(HWND hwndTV) { HTREEITEM hItem; @@ -481,12 +492,12 @@ BOOL RefreshTreeView(HWND hwndTV) hItem = (HTREEITEM)SendMessageW(hwndTV, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)hRoot); while (hItem) { RefreshTreeItem(hwndTV, hItem); + treeview_sort_item(hwndTV, hItem); hItem = (HTREEITEM)SendMessageW(hwndTV, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)hItem); } SendMessageW(hwndTV, WM_SETREDRAW, TRUE, 0); InvalidateRect(hwndTV, NULL, FALSE); - SendMessageW(hwndTV, TVM_SORTCHILDREN, TRUE, (LPARAM)hSelectedItem); SetCursor(hcursorOld); /* We reselect the currently selected node, this will prompt a refresh of the listview. */