Applied Thomas Bastiani's patch fixing the behaviour of freeglut under X11 when
operating without a window manager. Adds a fake ConfigureNotify event to make sure reshape callbacks are called at least once as specified. git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1313 7f0cb862-5218-0410-a997-914c9d46530a
This commit is contained in:
parent
eadc9b790a
commit
6c8a620bd5
@ -133,6 +133,7 @@ void fgPlatformOpenWindow( SFG_Window* window, const char* title,
|
||||
XEvent eventReturnBuffer; /* return buffer required for a call */
|
||||
unsigned long mask;
|
||||
unsigned int current_DisplayMode = fgState.DisplayMode ;
|
||||
XConfigureEvent fakeEvent = {0};
|
||||
|
||||
/* Save the display mode if we are creating a menu window */
|
||||
if( window->IsMenu && ( ! fgStructure.MenuContext ) )
|
||||
@ -239,6 +240,18 @@ void fgPlatformOpenWindow( SFG_Window* window, const char* title,
|
||||
&winAttr
|
||||
);
|
||||
|
||||
/* Fake configure event to force viewport setup
|
||||
* even with no window manager.
|
||||
*/
|
||||
fakeEvent.type = ConfigureNotify;
|
||||
fakeEvent.display = fgDisplay.pDisplay.Display;
|
||||
fakeEvent.window = window->Window.Handle;
|
||||
fakeEvent.x = x;
|
||||
fakeEvent.y = y;
|
||||
fakeEvent.width = w;
|
||||
fakeEvent.height = h;
|
||||
XPutBackEvent(fgDisplay.pDisplay.Display, (XEvent*)&fakeEvent);
|
||||
|
||||
/*
|
||||
* The GLX context creation, possibly trying the direct context rendering
|
||||
* or else use the current context if the user has so specified
|
||||
|
Reference in New Issue
Block a user