https://git.reactos.org/?p=reactos.git;a=commitdiff;h=5bd86b8487058b7a8d75c9dfcbbca861e20cff49

commit 5bd86b8487058b7a8d75c9dfcbbca861e20cff49
Author:     Mark Jansen <[email protected]>
AuthorDate: Sun Oct 16 00:51:19 2022 +0200
Commit:     Mark Jansen <[email protected]>
CommitDate: Wed Oct 19 19:37:41 2022 +0200

    [SHELL32] Fix menu item handling
    
    This restores the 'properties' functionality on the desktop
    Bug found by Hervé Poussineau
---
 dll/win32/shell32/CDefaultContextMenu.cpp    | 2 +-
 dll/win32/shell32/folders/CDesktopFolder.cpp | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/dll/win32/shell32/CDefaultContextMenu.cpp 
b/dll/win32/shell32/CDefaultContextMenu.cpp
index 10cffcfe4f2..15acfae51a3 100644
--- a/dll/win32/shell32/CDefaultContextMenu.cpp
+++ b/dll/win32/shell32/CDefaultContextMenu.cpp
@@ -646,7 +646,7 @@ CDefaultContextMenu::QueryContextMenu(
     QCMINFO qcminfo = {hMenu, IndexMenu, idCmdNext, idCmdLast, NULL};
     if (SUCCEEDED(_DoCallback(DFM_MERGECONTEXTMENU, uFlags, &qcminfo)))
     {
-        UINT added = idCmdNext - (idCmdFirst + cIds);
+        UINT added = qcminfo.idCmdFirst - idCmdNext;
         cIds += added;
         IndexMenu += added;
         m_iIdCBFirst = m_iIdSHELast;
diff --git a/dll/win32/shell32/folders/CDesktopFolder.cpp 
b/dll/win32/shell32/folders/CDesktopFolder.cpp
index 3e7c3b950e6..8aa1e089fff 100644
--- a/dll/win32/shell32/folders/CDesktopFolder.cpp
+++ b/dll/win32/shell32/folders/CDesktopFolder.cpp
@@ -860,7 +860,7 @@ HRESULT WINAPI CDesktopFolder::CallBack(IShellFolder *psf, 
HWND hwndOwner, IData
             QCMINFO *pqcminfo = (QCMINFO *)lParam;
             HMENU hpopup = CreatePopupMenu();
             _InsertMenuItemW(hpopup, 0, TRUE, 0, MFT_STRING, 
MAKEINTRESOURCEW(IDS_PROPERTIES), MFS_ENABLED);
-            Shell_MergeMenus(pqcminfo->hmenu, hpopup, pqcminfo->indexMenu++, 
pqcminfo->idCmdFirst, pqcminfo->idCmdLast, MM_ADDSEPARATOR);
+            Shell_MergeMenus(pqcminfo->hmenu, hpopup, pqcminfo->indexMenu, 
pqcminfo->idCmdFirst++, pqcminfo->idCmdLast, MM_ADDSEPARATOR);
             DestroyMenu(hpopup);
         }
 
@@ -887,4 +887,4 @@ HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
 
     TRACE("-- %p->(%p)\n",psf, *psf);
     return hres;
-}
\ No newline at end of file
+}

Reply via email to