X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_callbacks.c;h=9eee649b6a1474f3874d61c9f264f21740d74a08;hb=bc762393b1c3421d1f508c03111643e27a1cc8f9;hp=3dc818859b1561196b701c97d1a1cb838141833e;hpb=b1e6158f2fffaf8fc807615e8478b3b45d5915a2;p=freeglut diff --git a/src/freeglut_callbacks.c b/src/freeglut_callbacks.c index 3dc8188..9eee649 100644 --- a/src/freeglut_callbacks.c +++ b/src/freeglut_callbacks.c @@ -29,8 +29,6 @@ #include "config.h" #endif -#define G_LOG_DOMAIN "freeglut-callbacks" - #include "../include/GL/freeglut.h" #include "freeglut_internal.h" @@ -43,7 +41,7 @@ #define SET_CALLBACK(a) \ if( fgStructure.Window == NULL ) \ return; \ - fgStructure.Window->Callbacks.a = callback; + FETCH_WCB( ( *( fgStructure.Window ) ), a ) = callback; /* * Sets the Display callback for the current window @@ -117,14 +115,14 @@ void FGAPIENTRY glutTimerFunc( unsigned int timeOut, void (* callback)( int ), */ static void fghVisibility( int status ) { + int glut_status = GLUT_VISIBLE; + freeglut_assert_ready; freeglut_return_if_fail( fgStructure.Window ); - freeglut_return_if_fail( fgStructure.Window->Callbacks.Visibility ); - if( status == GLUT_HIDDEN || status == GLUT_FULLY_COVERED ) - fgStructure.Window->Callbacks.Visibility( GLUT_NOT_VISIBLE ); - else - fgStructure.Window->Callbacks.Visibility( GLUT_VISIBLE ); + if( ( GLUT_HIDDEN == status ) || ( GLUT_FULLY_COVERED == status ) ) + glut_status = GLUT_NOT_VISIBLE; + INVOKE_WCB( *( fgStructure.Window ), Visibility, ( glut_status ) ); } void FGAPIENTRY glutVisibilityFunc( void (* callback)( int ) ) @@ -229,9 +227,8 @@ void FGAPIENTRY glutWMCloseFunc( void (* callback)( void ) ) /* A. Donev: Destruction callback for menus */ void FGAPIENTRY glutMenuDestroyFunc( void (* callback)( void ) ) { - if( fgStructure.Menu == NULL ) - return; - fgStructure.Menu->Destroy = callback; + if( fgStructure.Menu ) + fgStructure.Menu->Destroy = callback; } /*