Nikolay Sivov : regedit: Sort each of top level branches separately.

Alexandre Julliard julliard at winehq.org
Thu Jul 20 12:11:29 CDT 2017


Module: wine
Branch: stable
Commit: 8c54035a62ab902d8f8cd5d6bfc9aa4db5b5e171
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=8c54035a62ab902d8f8cd5d6bfc9aa4db5b5e171

Author: Nikolay Sivov <nsivov at 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 at codeweavers.com>
Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
(cherry picked from commit a9bae9629c7496724fa5ed7fac222441df082024)
Signed-off-by: Michael Stefaniuc <mstefani at 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. */




More information about the wine-cvs mailing list