X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fmswin%2Ffg_menu_mswin.c;h=93c538ef6501e36bb4310f4967474b431f529978;hb=a00c7ee3552b527ac6b375d6a6ca42f90770ddc3;hp=9df001e92616db0eae63a942d63a154bd7230c85;hpb=8f5779d2f8e49f4de9fd79689b2c7867450578ab;p=freeglut diff --git a/src/mswin/fg_menu_mswin.c b/src/mswin/fg_menu_mswin.c index 9df001e..93c538e 100644 --- a/src/mswin/fg_menu_mswin.c +++ b/src/mswin/fg_menu_mswin.c @@ -37,20 +37,24 @@ GLvoid fgPlatformGetGameModeVMaxExtent( SFG_Window* window, int* x, int* y ) *y = glutGet ( GLUT_SCREEN_HEIGHT ); } -void fgPlatformCheckMenuDeactivate() +void fgPlatformCheckMenuDeactivate(HWND newFocusWnd) { /* User/system switched application focus. * If we have an open menu, close it. */ SFG_Menu* menu = NULL; - if ( fgStructure.Menus.First ) + if ( fgState.ActiveMenus ) menu = fgGetActiveMenu(); if ( menu ) { - printf("focus menu close\n"); - fgDeactivateMenu(menu->ParentWindow); + 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); } };