[0.4.13][SHELL32] Fix regression CORE-12364 explorer-sorting
authorJoachim Henze <Joachim.Henze@reactos.org>
Tue, 19 Jan 2021 17:19:59 +0000 (18:19 +0100)
committerJoachim Henze <Joachim.Henze@reactos.org>
Tue, 19 Jan 2021 17:19:59 +0000 (18:19 +0100)
The sorting in explorer broke by
SVN r73128 == git 24fcf531e78423b314a2d6a4ac750df69e478e3a

Thanks to Doug Lyons for providing this patch.

dll/win32/shell32/folders/CRegFolder.cpp

index 3353981..fe292e8 100644 (file)
@@ -474,7 +474,15 @@ HRESULT WINAPI CRegFolder::CompareIDs(LPARAM lParam, PCUIDLIST_RELATIVE pidl1, P
     }
 
     /* Guid folders come first compared to everything else */
-    return MAKE_COMPARE_HRESULT(clsid1 ? -1 : 1);
+    /* And Drives come before folders in My Computer */
+    if (_ILIsMyComputer(m_pidlRoot))
+    {
+        return MAKE_COMPARE_HRESULT(clsid1 ? 1 : -1);
+    }
+    else
+    {
+        return MAKE_COMPARE_HRESULT(clsid1 ? -1 : 1);
+    }
 }
 
 HRESULT WINAPI CRegFolder::CreateViewObject(HWND hwndOwner, REFIID riid, LPVOID *ppvOut)