Should only do check if mouse is outside client area when not opening a
submenu as well... git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1364 7f0cb862-5218-0410-a997-914c9d46530a
This commit is contained in:
parent
985693f528
commit
fe05157a34
@ -541,20 +541,23 @@ LRESULT CALLBACK fgPlatformWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam,
|
|||||||
if (!hwnd || !wnd)
|
if (!hwnd || !wnd)
|
||||||
/* User switched to another application*/
|
/* User switched to another application*/
|
||||||
fgDeactivateMenu(menu->ParentWindow);
|
fgDeactivateMenu(menu->ParentWindow);
|
||||||
else if (!wnd->IsMenu && wnd!=menu->ParentWindow) /* Make sure we don't kill the menu when trying to enter a submenu */
|
else if (!wnd->IsMenu) /* Make sure we don't kill the menu when trying to enter a submenu */
|
||||||
/* User switched to another FreeGLUT window */
|
|
||||||
fgDeactivateMenu(menu->ParentWindow);
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
/* Check if focus lost because non-client area of
|
if (wnd!=menu->ParentWindow)
|
||||||
* window was pressed (pressing on client area is
|
/* User switched to another FreeGLUT window */
|
||||||
* handled in fgCheckActiveMenu)
|
|
||||||
*/
|
|
||||||
POINT mouse_pos;
|
|
||||||
RECT clientArea = fghGetClientArea(menu->ParentWindow, GL_FALSE);
|
|
||||||
GetCursorPos(&mouse_pos);
|
|
||||||
if ( !PtInRect( &clientArea, mouse_pos ) )
|
|
||||||
fgDeactivateMenu(menu->ParentWindow);
|
fgDeactivateMenu(menu->ParentWindow);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* Check if focus lost because non-client area of
|
||||||
|
* window was pressed (pressing on client area is
|
||||||
|
* handled in fgCheckActiveMenu)
|
||||||
|
*/
|
||||||
|
POINT mouse_pos;
|
||||||
|
RECT clientArea = fghGetClientArea(menu->ParentWindow, GL_FALSE);
|
||||||
|
GetCursorPos(&mouse_pos);
|
||||||
|
if ( !PtInRect( &clientArea, mouse_pos ) )
|
||||||
|
fgDeactivateMenu(menu->ParentWindow);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user