void fgDestroyWindow( SFG_Window* window, GLboolean needToClose )
{
SFG_Window* subWindow;
+ int menu_index ;
assert( window != NULL );
freeglut_assert_ready;
else
fgListRemove( &fgStructure.Windows, &window->Node );
+ if ( window->ActiveMenu != NULL )
+ fgDeactivateMenu ( window ) ;
+
+ for ( menu_index = 0; menu_index < 3; menu_index ++ )
+ {
+ if ( window->Menu[menu_index] != NULL )
+ window->Menu[menu_index]->ParentWindow = NULL ;
+ }
+
/*
* OK, this window seems disconnected from the structure enough
* in order to be closed without any bigger risks...
/*
* Make sure all windows and menus have been deallocated
*/
- while( (window = (SFG_Window *)fgStructure.Windows.First) != NULL )
- fgDestroyWindow( window, TRUE );
-
while( (menu = (SFG_Menu *)fgStructure.Menus.First) != NULL )
fgDestroyMenu( menu );
+
+ while( (window = (SFG_Window *)fgStructure.Windows.First) != NULL )
+ fgDestroyWindow( window, TRUE );
}
/*