Grr. Forgot to enable the "freeglut" C programming mode in EMACS, and
[freeglut] / src / freeglut_structure.c
index 4a2fa06..8708d2b 100644 (file)
@@ -109,7 +109,7 @@ SFG_Window* fgCreateWindow( SFG_Window* parent, const char* title,
 /*
  * This private function creates a menu and adds it to the menus list
  */
-SFG_Menu* fgCreateMenu( FGCBmenu menuCallback )
+SFG_Menu* fgCreateMenu( FGCBMenu menuCallback )
 {
     int x = 100, y = 100, w = 100, h = 100 ;
     SFG_Window *current_window = fgStructure.Window ;
@@ -266,11 +266,15 @@ void fgDestroyWindow( SFG_Window* window, GLboolean needToClose )
     while ( (subWindow = (SFG_Window *)window->Children.First) != NULL )
         fgDestroyWindow( subWindow, needToClose );
 
-    if ( window->Callbacks.Destroy != NULL )
+    /*
+     * XXX Since INVOKE_WCB() tests the function pointer, why not make
+     * XXX this unconditional?  Overhead is close to nil, and it would
+     * XXX clarify the code by omitting a conditional test.
+     */
+    if ( FETCH_WCB( *window, Destroy ) )
     {
       SFG_Window *activeWindow = fgStructure.Window ;
-      fgSetWindow ( window ) ;
-      window->Callbacks.Destroy () ;
+      INVOKE_WCB( *window, Destroy, ( ) );
       fgSetWindow ( activeWindow ) ;
     }