diff --git a/windows/nonclient.c b/windows/nonclient.c index 6072d13e550..429d3b5a063 100644 --- a/windows/nonclient.c +++ b/windows/nonclient.c @@ -79,7 +79,7 @@ static const BYTE lpGrayMask[] = { 0xAA, 0xA0, ((exStyle) & WS_EX_DLGMODALFRAME) || \ !((style) & (WS_CHILD | WS_POPUP))) -#define HAS_MENU(w) (!((w)->dwStyle & WS_CHILD) && ((w)->wIDmenu != 0)) +#define HAS_MENU(w) ((((w)->dwStyle & (WS_CHILD | WS_POPUP)) != WS_CHILD) && ((w)->wIDmenu != 0)) /****************************************************************************** @@ -390,7 +390,7 @@ LONG NC_HandleNCCalcSize( HWND hwnd, RECT *winRect ) winRect->right -= tmpRect.right; winRect->bottom -= tmpRect.bottom; - if (!(style & WS_CHILD) && GetMenu(hwnd)) + if (((style & (WS_CHILD | WS_POPUP)) != WS_CHILD) && GetMenu(hwnd)) { TRACE("Calling GetMenuBarHeight with hwnd %p, width %ld, at (%ld, %ld).\n", hwnd, winRect->right - winRect->left, -tmpRect.left, -tmpRect.top ); diff --git a/windows/winpos.c b/windows/winpos.c index 4dcf707349f..10e35cba1fe 100644 --- a/windows/winpos.c +++ b/windows/winpos.c @@ -747,7 +747,7 @@ void WINPOS_GetMinMaxInfo( HWND hwnd, POINT *maxSize, POINT *maxPos, style &= ~WS_BORDER; /* WS_CAPTION = WS_DLGFRAME | WS_BORDER */ GetClientRect(GetAncestor(hwnd,GA_PARENT), &rc); - AdjustWindowRectEx(&rc, style, 0, exstyle); + AdjustWindowRectEx(&rc, style, ((style & WS_POPUP) && GetMenu(hwnd)), exstyle); /* avoid calculating this twice */ style &= ~(WS_DLGFRAME | WS_BORDER | WS_THICKFRAME);