https://git.reactos.org/?p=reactos.git;a=commitdiff;h=3cbdcc6363666db43ec82c...
commit 3cbdcc6363666db43ec82cd119f7f2536470fa93 Author: Mark Jansen mark.jansen@reactos.org AuthorDate: Wed Aug 7 00:50:21 2019 +0200 Commit: Mark Jansen mark.jansen@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 */