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_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOSENDCHANGING |
SWP_NOZORDER 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 ) 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) #if defined(_WIN32_WCE)
window->State.Width = HIWORD(lParam); window->State.Width = HIWORD(lParam);
window->State.Height = LOWORD(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.Width = LOWORD(lParam);
window->State.Height = HIWORD(lParam); window->State.Height = HIWORD(lParam);
#endif /* defined(_WIN32_WCE) */ #endif /* defined(_WIN32_WCE) */
if (width!=window->State.Width || height!=window->State.Height)
/* Something changed, need to resize */
window->State.NeedToResize = GL_TRUE;
} }
break; break;