- /* If we have an open menu, see if the open menu should be closed
- when focus was lost because user either switched
- application or FreeGLUT window (if one is running multiple
- windows). If so, close menu the active menu.
- */
- if ( fgStructure.CurrentMenu )
- menu = fgGetActiveMenu();
-
- if ( menu )
- {
- SFG_Window* wnd = NULL;
- HWND hwnd = GetForegroundWindow(); /* Get window with current focus */
- if (hwnd)
- /* See if its one of our windows */
- wnd = fgWindowByHandle(hwnd);
-
- if (!hwnd || !wnd)
- /* User switched to another application*/
- fgDeactivateMenu(menu->ParentWindow);
- else if (
- ( wnd->IsMenu && wnd->ActiveMenu && wnd->ActiveMenu->ParentWindow!=menu->ParentWindow) || /* Make sure we don't kill the menu when trying to enter a submenu */
- (!wnd->IsMenu && wnd!=menu->ParentWindow)
- )
- /* User switched to another FreeGLUT window */
- fgDeactivateMenu(menu->ParentWindow);
- }