X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=freeglut-1.3%2Ffreeglut_structure.c;h=2c262590ef9e69336c54da9196789ef20011253b;hb=9d66916bab11e22ff2b670638be3a50e604897a1;hp=2da3e1ff40b43c2ce0e270e47575fbee3ec38a61;hpb=67454172b30a73a52957022e95fbc393e3490d25;p=freeglut diff --git a/freeglut-1.3/freeglut_structure.c b/freeglut-1.3/freeglut_structure.c index 2da3e1f..2c26259 100644 --- a/freeglut-1.3/freeglut_structure.c +++ b/freeglut-1.3/freeglut_structure.c @@ -209,7 +209,7 @@ void fgAddToWindowDestroyList ( SFG_Window* window, GLboolean needToClose ) void fgCloseWindows () { SFG_WindowList *window_ptr = WindowsToDestroy ; - WindowsToDestroy = (SFG_WindowList*)NULL ; // In case the destroy callbacks cause more windows to be closed + WindowsToDestroy = (SFG_WindowList*)NULL ; /* In case the destroy callbacks cause more windows to be closed */ while ( window_ptr ) { @@ -254,7 +254,12 @@ void fgDestroyWindow( SFG_Window* window, GLboolean needToClose ) * If the programmer defined a destroy callback, call it */ if ( window->Callbacks.Destroy != NULL ) + { + SFG_Window *activeWindow = fgStructure.Window ; + fgStructure.Window = window ; window->Callbacks.Destroy () ; + fgStructure.Window = activeWindow ; + } /* * Now we should remove the reference to this window from its parent