Moved the window-resize code so that it happens whenever there is a

pending resize for the window, whether or not the window is visible or
in need of a redisplay.  The resize is now done before the visibility
and need-to-redisplay checks.


git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@414 7f0cb862-5218-0410-a997-914c9d46530a
This commit is contained in:
rkrolib 2003-12-23 08:39:44 +00:00
parent 38fb597973
commit 64443c7c4b

View File

@ -199,40 +199,25 @@ static void fghRedrawWindowByHandle ( SFG_WindowHandleType handle )
static void fghcbDisplayWindow( SFG_Window *window,
SFG_Enumerator *enumerator )
{
if( window->State.NeedToResize )
{
SFG_Window *current_window = fgStructure.Window;
fgSetWindow( window );
fghReshapeWindowByHandle(
window->Window.Handle,
window->State.Width,
window->State.Height
);
window->State.NeedToResize = GL_FALSE;
fgSetWindow( current_window );
}
if( window->State.Redisplay &&
window->State.Visible )
{
/*
* XXX Resizing should *not* depend upon whether there
* XXX is a pending redisplay flag, as far as I can tell.
* XXX
* XXX Note, too, that the {NeedToResize} flag is a little
* XXX fuzzy in its meaning, since for WIN32, this also
* XXX means "we need to tell the application that the window has
* XXX changed size", while in X11, it only means "we need
* XXX to ask the window system to resize the window.
* XXX Splitting the flag's meaning might be desirable, but
* XXX that could complicate the code more. (On X11, the
* XXX user callback is called as soon as the event is
* XXX discovered, but resizing the window is postponed
* XXX until after other events.)
*/
if( window->State.NeedToResize )
{
SFG_Window *current_window = fgStructure.Window;
fgSetWindow( window );
fghReshapeWindowByHandle(
window->Window.Handle,
window->State.Width,
window->State.Height
);
window->State.NeedToResize = GL_FALSE;
fgSetWindow ( current_window );
}
window->State.Redisplay = GL_FALSE;
#if TARGET_HOST_UNIX_X11