X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fmswin%2Ffg_window_mswin.c;h=6a86848222e82173ec4af0ef25096d9b95d05a19;hb=af4474129987c478bad43ff0b4f44c2470298a8d;hp=ae30001537e14affce9f5f26f6673840ed13aa7a;hpb=9a83e1923241a52132e87f333184433067456097;p=freeglut diff --git a/src/mswin/fg_window_mswin.c b/src/mswin/fg_window_mswin.c index ae30001..6a86848 100644 --- a/src/mswin/fg_window_mswin.c +++ b/src/mswin/fg_window_mswin.c @@ -457,45 +457,22 @@ void fghComputeWindowRectFromClientArea_QueryWindow( RECT *clientRect, const SFG /* Gets the rect describing the client area (drawable area) of the * specified window. Output is position of corners of client area (drawable area) on the screen. - * Returns an empty rect if window pointer or window handle is NULL. - * If wantPosOutside is set to true, the output client Rect - * will follow freeGLUT's window specification convention in which the - * top-left corner is at the outside of the window, while the size - * (rect.right-rect.left,rect.bottom-rect.top) is the size of the drawable - * area. + * Does not touch clientRect if window pointer or window handle is NULL. + * (rect.right-rect.left,rect.bottom-rect.top) is the size of the drawable area. */ -void fghGetClientArea( RECT *clientRect, const SFG_Window *window, BOOL wantPosOutside ) +void fghGetClientArea( RECT *clientRect, const SFG_Window *window ) { POINT topLeftClient = {0,0}; POINT topLeftWindow = {0,0}; freeglut_return_if_fail((window && window->Window.Handle)); - /* - * call GetWindowRect() - * (this returns the pixel coordinates of the outside of the window) - * cannot use GetClientRect as it returns a rect relative to - * the top-left point of the client area (.top and .left are thus always 0) - * and is thus only useful for querying the size of the client area, not - * its position. - */ - GetWindowRect( window->Window.Handle, clientRect ); - topLeftWindow.x = clientRect->top; - topLeftWindow.y = clientRect->left; - /* Get size of client rect */ GetClientRect(window->Window.Handle, clientRect); /* Get position of top-left of client area on the screen */ ClientToScreen(window->Window.Handle,&topLeftClient); /* Add top-left offset */ OffsetRect(clientRect,topLeftClient.x,topLeftClient.y); - - /* replace top and left with top and left of window, if wanted */ - if (wantPosOutside) - { - clientRect->left = topLeftWindow.x; - clientRect->top = topLeftWindow.y; - } } #if(WINVER >= 0x500) @@ -751,7 +728,7 @@ void fgPlatformOpenWindow( SFG_Window* window, const char* title, ShowWindow( window->Window.Handle, SW_SHOW ); #else ShowWindow( window->Window.Handle, - fgState.ForceIconic ? SW_SHOWMINIMIZED : SW_SHOW ); + fgState.ForceIconic ? SW_SHOWMINIMIZED : SW_SHOWNORMAL ); #endif /* defined(_WIN32_WCE) */ UpdateWindow( window->Window.Handle ); @@ -807,7 +784,7 @@ void fgPlatformReshapeWindow ( SFG_Window *window, int width, int height ) * for them. */ RECT parentRect; - fghGetClientArea( &parentRect, window->Parent, FALSE ); + fghGetClientArea( &parentRect, window->Parent ); OffsetRect(&windowRect,-parentRect.left,-parentRect.top); }