prevent resize callback (and indeed the whole resizing logic) from getting

called twice


git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1483 7f0cb862-5218-0410-a997-914c9d46530a
This commit is contained in:
dcnieho 2012-11-23 09:30:57 +00:00
parent 9d51152ba6
commit 0eb960d0a1

View File

@ -119,6 +119,10 @@ void fgPlatformReshapeWindow ( SFG_Window *window, int width, int height )
SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOSENDCHANGING |
SWP_NOZORDER
);
/* Set new width and height so we can test for that in WM_SIZE message handler and don't do anything if not needed */
window->State.Width = width;
window->State.Height = height;
}
@ -415,7 +419,8 @@ LRESULT CALLBACK fgPlatformWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam,
*/
if( window->State.Visible )
{
window->State.NeedToResize = GL_TRUE;
/* get old values first to compare to below */
int width = window->State.Width, height=window->State.Height;
#if defined(_WIN32_WCE)
window->State.Width = HIWORD(lParam);
window->State.Height = LOWORD(lParam);
@ -423,6 +428,10 @@ LRESULT CALLBACK fgPlatformWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam,
window->State.Width = LOWORD(lParam);
window->State.Height = HIWORD(lParam);
#endif /* defined(_WIN32_WCE) */
if (width!=window->State.Width || height!=window->State.Height)
/* Something changed, need to resize */
window->State.NeedToResize = GL_TRUE;
}
break;