X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffg_menu.c;h=53112dc210216eda54be2c51392c799697fc90fe;hb=207c3128bf025b5e025bace5c0425d380dd72aa9;hp=ae7405c7158c54332ca4cf002ef0c44a44094a5d;hpb=f4b802a47ef27c25a283a68932956fb7898771f1;p=freeglut diff --git a/src/fg_menu.c b/src/fg_menu.c index ae7405c..53112dc 100644 --- a/src/fg_menu.c +++ b/src/fg_menu.c @@ -135,7 +135,7 @@ static void fghDeactivateSubMenu( SFG_MenuEntry *menuEntry ) static GLvoid fghGetVMaxExtent( SFG_Window* window, int* x, int* y ) { if( fgStructure.GameModeWindow ) - fgPlatformGetGameModeVMaxExtent ( window, x, y ); + fgPlatformGetGameModeVMaxExtent ( window, x, y ); else { *x = fgDisplay.ScreenWidth; @@ -784,10 +784,10 @@ int FGAPIENTRY glutCreateMenuUcall( FGCBMenuUC callback, FGCBUserData userData ) { /* The menu object creation code resides in fg_structure.c */ FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutCreateMenuUcall" ); - if (fgState.ActiveMenus) - { - fgError( "Menu manipulation not allowed while menus in use." ); - } + if (fgState.ActiveMenus) + { + fgError( "Menu manipulation not allowed while menus in use." ); + } return fgCreateMenu( callback, userData )->ID; } @@ -795,18 +795,20 @@ int FGAPIENTRY glutCreateMenuUcall( FGCBMenuUC callback, FGCBUserData userData ) /* Standard glutCreateMenu */ static void fghCreateMenuCallback( int menu, FGCBUserData userData ) { - FGCBMenu callback = (FGCBMenu)userData; - callback( menu ); + FGCBMenu* callback = (FGCBMenu*)&userData; + (*callback)( menu ); } int FGAPIENTRY glutCreateMenu( FGCBMenu callback ) { + FGCBMenu* reference; FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutCreateMenu" ); if (!callback) - { + { return glutCreateMenuUcall( NULL, NULL ); - } - return glutCreateMenuUcall( fghCreateMenuCallback, (FGCBUserData)callback ); + } + reference = &callback; + return glutCreateMenuUcall( fghCreateMenuCallback, *((FGCBUserData*)reference) ); } /*