X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fx11%2Ffg_window_x11.c;h=d2a3bbd5baac555a7a9437f841f5312c67b71ceb;hb=9721970dce1ebac6b6bb3c7b0b84fdada7216270;hp=b6943d3a3de8dbc8ce41357a73be797c287890b3;hpb=99d53f15a4216240088132f6af9cb194b519b1cc;p=freeglut diff --git a/src/x11/fg_window_x11.c b/src/x11/fg_window_x11.c index b6943d3..d2a3bbd 100644 --- a/src/x11/fg_window_x11.c +++ b/src/x11/fg_window_x11.c @@ -42,10 +42,10 @@ static int fghResizeFullscrToggle(void) { XWindowAttributes attributes; + SFG_Window *win = fgStructure.CurrentWindow; if(glutGet(GLUT_FULL_SCREEN)) { /* restore original window size */ - SFG_Window *win = fgStructure.CurrentWindow; fgStructure.CurrentWindow->State.WorkMask = GLUT_SIZE_WORK; fgStructure.CurrentWindow->State.DesiredWidth = win->State.pWState.OldWidth; fgStructure.CurrentWindow->State.DesiredHeight = win->State.pWState.OldHeight; @@ -300,12 +300,6 @@ void fgPlatformOpenWindow( SFG_Window* window, const char* title, } #endif - /* - * XXX Assume the new window is visible by default - * XXX Is this a safe assumption? - */ - window->State.Visible = GL_TRUE; - sizeHints.flags = 0; if ( positionUse ) sizeHints.flags |= USPosition; @@ -362,11 +356,16 @@ void fgPlatformOpenWindow( SFG_Window* window, const char* title, fgRegisterDevices( fgDisplay.pDisplay.Display, &(window->Window.Handle) ); #endif - XMapWindow( fgDisplay.pDisplay.Display, window->Window.Handle ); + if (!window->IsMenu) /* Don't show window after creation if its a menu */ + { + XMapWindow( fgDisplay.pDisplay.Display, window->Window.Handle ); + window->State.Visible = GL_TRUE; + } XFree(visualInfo); - if( !isSubWindow) + /* wait till window visible */ + if( !isSubWindow && !window->IsMenu) XPeekIfEvent( fgDisplay.pDisplay.Display, &eventReturnBuffer, &fghWindowIsVisible, (XPointer)(window->Window.Handle) ); #undef WINDOW_CONFIG }