X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fmswin%2Ffg_state_mswin.c;h=91256a39ba9f106f6586b476b28d8746a9767ea8;hb=6a9540715abb6477b2a55e0a54246bfea66dfb95;hp=07ffdb1d64e1ac43f031d8ca902fe5090702501c;hpb=5b3d339481bac6dbaeb599bffc1325f716585bfe;p=freeglut diff --git a/src/mswin/fg_state_mswin.c b/src/mswin/fg_state_mswin.c index 07ffdb1..91256a3 100644 --- a/src/mswin/fg_state_mswin.c +++ b/src/mswin/fg_state_mswin.c @@ -140,10 +140,10 @@ int fgPlatformGlutGet ( GLenum eWhat ) return returnValue; case GLUT_WINDOW_BUFFER_SIZE: - returnValue = 1 ; /* ????? */ + returnValue = 1 ; /* TODO????? */ return returnValue; case GLUT_WINDOW_STENCIL_SIZE: - returnValue = 0 ; /* ????? */ + returnValue = 0 ; /* TODO????? */ return returnValue; case GLUT_WINDOW_X: @@ -183,6 +183,19 @@ int fgPlatformGlutGet ( GLenum eWhat ) GetWindowRect( fgStructure.CurrentWindow->Window.Handle, &winRect ); #else winRect = fghGetClientArea(fgStructure.CurrentWindow, FALSE); + if (fgStructure.CurrentWindow->Parent && (eWhat==GLUT_WINDOW_X || eWhat==GLUT_WINDOW_Y)) + { + /* For child window, we should return relative to upper-left + * of parent's client area. + */ + POINT topleft; + topleft.x = winRect.left; + topleft.y = winRect.top; + + ScreenToClient(fgStructure.CurrentWindow->Parent->Window.Handle,&topleft); + winRect.left = topleft.x; + winRect.top = topleft.y; + } #endif /* defined(_WIN32_WCE) */ switch( eWhat )