fixed build on MSVC6
[freeglut] / src / mswin / fg_menu_mswin.c
index d198cca..93c538e 100644 (file)
 #include "../fg_internal.h"
 
 
+
 GLvoid fgPlatformGetGameModeVMaxExtent( SFG_Window* window, int* x, int* y )
 {
     *x = glutGet ( GLUT_SCREEN_WIDTH );
     *y = glutGet ( GLUT_SCREEN_HEIGHT );
 }
 
+void fgPlatformCheckMenuDeactivate(HWND newFocusWnd)
+{
+    /* User/system switched application focus.
+     * If we have an open menu, close it.
+     */
+    SFG_Menu* menu = NULL;
+
+    if ( fgState.ActiveMenus )
+        menu = fgGetActiveMenu();
+
+    if ( menu )
+    {
+        if (newFocusWnd != menu->Window->Window.Handle)
+            /* When in GameMode, the menu's parent window will lose focus when the menu is opened.
+             * This is sadly necessary as we need to do an activating ShowWindow() for the menu
+             * to pop up over the gamemode window
+             */
+            fgDeactivateMenu(menu->ParentWindow);
+    }
+};
+
 
 
 /* -- PLATFORM-SPECIFIC INTERFACE FUNCTION -------------------------------------------------- */