SubWindow border thickness fix. Overlay changes in glutGet.
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@49 7f0cb862-5218-0410-a997-914c9d46530a
This commit is contained in:
parent
f1c230a97b
commit
304a5d98a6
@ -32,7 +32,7 @@
|
|||||||
#define G_LOG_DOMAIN "freeglut-structure"
|
#define G_LOG_DOMAIN "freeglut-structure"
|
||||||
|
|
||||||
#include "../include/GL/freeglut.h"
|
#include "../include/GL/freeglut.h"
|
||||||
#include "../include/GL/freeglut_internal.h"
|
#include "freeglut_internal.h"
|
||||||
|
|
||||||
|
|
||||||
/* -- GLOBAL EXPORTS ------------------------------------------------------- */
|
/* -- GLOBAL EXPORTS ------------------------------------------------------- */
|
||||||
@ -178,6 +178,17 @@ void fgAddToWindowDestroyList ( SFG_Window* window, GLboolean needToClose )
|
|||||||
new_list_entry->next = WindowsToDestroy ;
|
new_list_entry->next = WindowsToDestroy ;
|
||||||
WindowsToDestroy = new_list_entry ;
|
WindowsToDestroy = new_list_entry ;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Check if the window is the current one...
|
||||||
|
*/
|
||||||
|
if ( fgStructure.Window == window )
|
||||||
|
fgStructure.Window = NULL;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If the destroyed window has the highest window ID number, decrement the window ID number
|
||||||
|
*/
|
||||||
|
if ( window->ID == fgStructure.WindowID ) fgStructure.WindowID-- ;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check the execution state. If this has been called from "glutDestroyWindow",
|
* Check the execution state. If this has been called from "glutDestroyWindow",
|
||||||
* a statement in that function will reset the "ExecState" after this function returns.
|
* a statement in that function will reset the "ExecState" after this function returns.
|
||||||
@ -197,8 +208,6 @@ void fgAddToWindowDestroyList ( SFG_Window* window, GLboolean needToClose )
|
|||||||
*/
|
*/
|
||||||
void fgCloseWindows ()
|
void fgCloseWindows ()
|
||||||
{
|
{
|
||||||
fgExecutionState ExecState = fgState.ExecState ;
|
|
||||||
|
|
||||||
SFG_WindowList *window_ptr = WindowsToDestroy ;
|
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
|
||||||
|
|
||||||
@ -209,14 +218,12 @@ void fgCloseWindows ()
|
|||||||
free ( window_ptr ) ;
|
free ( window_ptr ) ;
|
||||||
window_ptr = next ;
|
window_ptr = next ;
|
||||||
|
|
||||||
if ( !window_ptr ) window_ptr = WindowsToDestroy ;
|
if ( !window_ptr )
|
||||||
|
{
|
||||||
|
window_ptr = WindowsToDestroy ;
|
||||||
|
WindowsToDestroy = (SFG_WindowList*)NULL ;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Since the "fgDestroyWindow" function could easily have set the "ExecState" to stop,
|
|
||||||
* let's set it back to what it was.
|
|
||||||
*/
|
|
||||||
fgState.ExecState = ExecState ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -264,12 +271,6 @@ void fgDestroyWindow( SFG_Window* window, GLboolean needToClose )
|
|||||||
if( needToClose == TRUE )
|
if( needToClose == TRUE )
|
||||||
fgCloseWindow( window );
|
fgCloseWindow( window );
|
||||||
|
|
||||||
/*
|
|
||||||
* Check if the window is the current one...
|
|
||||||
*/
|
|
||||||
if( fgStructure.Window == window )
|
|
||||||
fgStructure.Window = NULL;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Finally, we can delete the window's object. It hopefully does
|
* Finally, we can delete the window's object. It hopefully does
|
||||||
* have everything inside it freed and we do not have to care...
|
* have everything inside it freed and we do not have to care...
|
||||||
|
Reference in New Issue
Block a user