X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_window.c;h=159b3018a0d972d12cb97877f5f3a738b49b8863;hb=f774a7299ff2cc23a1608267cdfc70bfb41930fd;hp=f6da23ec54662a03ab37304c3f3ade0794011d48;hpb=3a62f01ded704b52999ca8b22f9cd7b6abb251f5;p=freeglut diff --git a/src/freeglut_window.c b/src/freeglut_window.c index f6da23e..159b301 100644 --- a/src/freeglut_window.c +++ b/src/freeglut_window.c @@ -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 */ - - XTranslateCoordinates( - fgDisplay.Display, - fgStructure.CurrentWindow->Window.Handle, - fgDisplay.RootWindow, - 0, 0, &x, &y, &w - ); + 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); - 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;