Module: wine Branch: stable Commit: 8c54035a62ab902d8f8cd5d6bfc9aa4db5b5e171 URL: http://source.winehq.org/git/wine.git/?a=commit;h=8c54035a62ab902d8f8cd5d6bf...
Author: Nikolay Sivov nsivov@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@codeweavers.com Signed-off-by: Hugh McMaster hugh.mcmaster@outlook.com Signed-off-by: Alexandre Julliard julliard@winehq.org (cherry picked from commit a9bae9629c7496724fa5ed7fac222441df082024) Signed-off-by: Michael Stefaniuc mstefani@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. */