Fixing the window position for asynchronous X11 implementations (e-mail by Jocelyn Frechot, Sun 11/25/2007 11:29 AM)

git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@737 7f0cb862-5218-0410-a997-914c9d46530a
This commit is contained in:
fayjf 2007-12-01 23:34:55 +00:00
parent 872dbbc4ad
commit 9d2fccf853

View File

@ -1315,35 +1315,24 @@ void FGAPIENTRY glutFullScreen( void )
{
#if TARGET_HOST_POSIX_X11
int x, y;
Window w;
XMoveResizeWindow(
fgDisplay.Display,
fgStructure.CurrentWindow->Window.Handle,
0, 0,
fgDisplay.ScreenWidth,
fgDisplay.ScreenHeight
);
Status status; /* Returned by XGetWindowAttributes(), not checked. */
XWindowAttributes attributes;
XFlush( fgDisplay.Display ); /* This is needed */
status = XGetWindowAttributes(fgDisplay.Display,
fgStructure.CurrentWindow->Window.Handle,
&attributes);
/*
* The "x" and "y" members of "attributes" are the window's coordinates
* relative to its parent, i.e. to the decoration window.
*/
XMoveResizeWindow(fgDisplay.Display,
fgStructure.CurrentWindow->Window.Handle,
-attributes.x,
-attributes.y,
fgDisplay.ScreenWidth,
fgDisplay.ScreenHeight);
XTranslateCoordinates(
fgDisplay.Display,
fgStructure.CurrentWindow->Window.Handle,
fgDisplay.RootWindow,
0, 0, &x, &y, &w
);
if (x || y)
{
XMoveWindow(
fgDisplay.Display,
fgStructure.CurrentWindow->Window.Handle,
-x, -y
);
XFlush( fgDisplay.Display ); /* XXX Shouldn't need this */
}
#elif TARGET_HOST_MS_WINDOWS && !defined(_WIN32_WCE) /* FIXME: what about WinCE */
RECT rect;