https://git.reactos.org/?p=reactos.git;a=commitdiff;h=3cbdcc6363666db43ec82…
commit 3cbdcc6363666db43ec82cd119f7f2536470fa93
Author:     Mark Jansen <mark.jansen(a)reactos.org>
AuthorDate: Wed Aug 7 00:50:21 2019 +0200
Commit:     Mark Jansen <mark.jansen(a)reactos.org>
CommitDate: Thu Aug 8 19:51:15 2019 +0200
    [WIN32SS] For application menu's, only exclude the menu item,
    not the entire window.
    Because the application menu is part of the application window,
    this would lead to bad results.
---
 win32ss/user/ntuser/menu.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/win32ss/user/ntuser/menu.c b/win32ss/user/ntuser/menu.c
index 13af632520d..ecf67761dd3 100644
--- a/win32ss/user/ntuser/menu.c
+++ b/win32ss/user/ntuser/menu.c
@@ -3354,10 +3354,20 @@ static PMENU FASTCALL MENU_ShowSubPopup(PWND WndOwner, PMENU Menu,
BOOL SelectFi
   pWnd = ValidateHwndNoErr(Menu->hWnd);
   /* Grab the rect of our (entire) parent menu, so we can try to not overlap it */
-  if (!IntGetWindowRect(pWnd, &ParentRect))
+  if (Menu->fFlags & MNF_POPUP)
   {
-      ERR("No pWnd\n");
-      ParentRect = Rect;
+    if (!IntGetWindowRect(pWnd, &ParentRect))
+    {
+        ERR("No pWnd\n");
+        ParentRect = Rect;
+    }
+  }
+  else
+  {
+    /* Inside the menu bar, we do not want to grab the entire window... */
+    ParentRect = Rect;
+    if (pWnd)
+        RECTL_vOffsetRect(&ParentRect, pWnd->rcWindow.left,
pWnd->rcWindow.top);
   }
   /* correct item if modified as a reaction to WM_INITMENUPOPUP message */