don't show window when creating menu (better fix then making it very small and hiding it asap...
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1579 7f0cb862-5218-0410-a997-914c9d46530a
This commit is contained in:
parent
9495df62ee
commit
62b5dadbe3
@ -113,7 +113,6 @@ SFG_Window* fgCreateWindow( SFG_Window* parent, const char* title,
|
|||||||
*/
|
*/
|
||||||
SFG_Menu* fgCreateMenu( FGCBMenu menuCallback )
|
SFG_Menu* fgCreateMenu( FGCBMenu menuCallback )
|
||||||
{
|
{
|
||||||
int x = 100, y = 100, w = 1, h = 1;
|
|
||||||
SFG_Window *current_window = fgStructure.CurrentWindow;
|
SFG_Window *current_window = fgStructure.CurrentWindow;
|
||||||
|
|
||||||
/* Have the menu object created */
|
/* Have the menu object created */
|
||||||
@ -122,13 +121,11 @@ SFG_Menu* fgCreateMenu( FGCBMenu menuCallback )
|
|||||||
menu->ParentWindow = NULL;
|
menu->ParentWindow = NULL;
|
||||||
|
|
||||||
/* Create a window for the menu to reside in. */
|
/* Create a window for the menu to reside in. */
|
||||||
|
fgCreateWindow( NULL, "freeglut menu", GL_FALSE, 0, 0, GL_FALSE, 0, 0,
|
||||||
fgCreateWindow( NULL, "freeglut menu", GL_TRUE, x, y, GL_TRUE, w, h,
|
|
||||||
GL_FALSE, GL_TRUE );
|
GL_FALSE, GL_TRUE );
|
||||||
menu->Window = fgStructure.CurrentWindow;
|
menu->Window = fgStructure.CurrentWindow;
|
||||||
glutDisplayFunc( fgDisplayMenu );
|
glutDisplayFunc( fgDisplayMenu );
|
||||||
|
|
||||||
glutHideWindow( ); /* Hide the window for now */
|
|
||||||
fgSetWindow( current_window );
|
fgSetWindow( current_window );
|
||||||
|
|
||||||
/* Initialize the object properties: */
|
/* Initialize the object properties: */
|
||||||
|
@ -635,18 +635,12 @@ void fgPlatformOpenWindow( SFG_Window* window, const char* title,
|
|||||||
y = CW_USEDEFAULT;
|
y = CW_USEDEFAULT;
|
||||||
}
|
}
|
||||||
if( !sizeUse )
|
if( !sizeUse )
|
||||||
{
|
|
||||||
if( !window->IsMenu )
|
|
||||||
{
|
{
|
||||||
w = CW_USEDEFAULT;
|
w = CW_USEDEFAULT;
|
||||||
h = CW_USEDEFAULT;
|
h = CW_USEDEFAULT;
|
||||||
}
|
}
|
||||||
else /* fail safe - Windows can make a window of size (0, 0) */
|
#if !defined(_WIN32_WCE) /* no decorations for windows CE, so nothing to do */
|
||||||
w = h = 300; /* default window size */
|
else
|
||||||
}
|
|
||||||
|
|
||||||
#if !defined(_WIN32_WCE) /* no decorations for windows CE */
|
|
||||||
if( sizeUse )
|
|
||||||
{
|
{
|
||||||
RECT windowRect;
|
RECT windowRect;
|
||||||
/*
|
/*
|
||||||
@ -742,8 +736,9 @@ void fgPlatformOpenWindow( SFG_Window* window, const char* title,
|
|||||||
#if defined(_WIN32_WCE)
|
#if defined(_WIN32_WCE)
|
||||||
ShowWindow( window->Window.Handle, SW_SHOW );
|
ShowWindow( window->Window.Handle, SW_SHOW );
|
||||||
#else
|
#else
|
||||||
|
if (!window->IsMenu) /* Don't show window after creation if its a menu */
|
||||||
{
|
{
|
||||||
BOOL iconic = fgState.ForceIconic && !window->IsMenu && !gameMode && !isSubWindow;
|
BOOL iconic = fgState.ForceIconic && !gameMode && !isSubWindow;
|
||||||
ShowWindow( window->Window.Handle,
|
ShowWindow( window->Window.Handle,
|
||||||
iconic ? SW_SHOWMINIMIZED : SW_SHOWNORMAL );
|
iconic ? SW_SHOWMINIMIZED : SW_SHOWNORMAL );
|
||||||
}
|
}
|
||||||
|
@ -300,12 +300,6 @@ void fgPlatformOpenWindow( SFG_Window* window, const char* title,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
|
||||||
* XXX Assume the new window is visible by default
|
|
||||||
* XXX Is this a safe assumption?
|
|
||||||
*/
|
|
||||||
window->State.Visible = GL_TRUE;
|
|
||||||
|
|
||||||
sizeHints.flags = 0;
|
sizeHints.flags = 0;
|
||||||
if ( positionUse )
|
if ( positionUse )
|
||||||
sizeHints.flags |= USPosition;
|
sizeHints.flags |= USPosition;
|
||||||
@ -362,7 +356,11 @@ void fgPlatformOpenWindow( SFG_Window* window, const char* title,
|
|||||||
fgRegisterDevices( fgDisplay.pDisplay.Display, &(window->Window.Handle) );
|
fgRegisterDevices( fgDisplay.pDisplay.Display, &(window->Window.Handle) );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (!window->IsMenu) /* Don't show window after creation if its a menu */
|
||||||
|
{
|
||||||
XMapWindow( fgDisplay.pDisplay.Display, window->Window.Handle );
|
XMapWindow( fgDisplay.pDisplay.Display, window->Window.Handle );
|
||||||
|
window->State.Visible = GL_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
XFree(visualInfo);
|
XFree(visualInfo);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user