[WIN32SS] Exclude the entire menu from overlapping, not just the menu item 1807/head
authorMark Jansen <mark.jansen@reactos.org>
Mon, 5 Aug 2019 20:57:21 +0000 (22:57 +0200)
committerMark Jansen <mark.jansen@reactos.org>
Tue, 6 Aug 2019 19:17:47 +0000 (21:17 +0200)
CORE-15863

win32ss/user/ntuser/menu.c

index 7bf7bbd..3ff90e9 100644 (file)
@@ -3362,12 +3362,11 @@ static PMENU FASTCALL MENU_ShowSubPopup(PWND WndOwner, PMENU Menu, BOOL SelectFi
 
   pWnd = ValidateHwndNoErr(Menu->hWnd);
 
-  ParentRect = Rect;
-  if (pWnd)
+  /* Grab the rect of our (entire) parent menu, so we can try to not overlap it */
+  if (!IntGetWindowRect(pWnd, &ParentRect))
   {
-      POINT pt = {0, 0};
-      IntClientToScreen(pWnd, &pt);
-      RECTL_vOffsetRect(&ParentRect, pt.x, pt.y);
+      ERR("No pWnd\n");
+      ParentRect = Rect;
   }
 
   /* correct item if modified as a reaction to WM_INITMENUPOPUP message */