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:
parent
9d51152ba6
commit
0eb960d0a1
@ -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;
|
||||||
|
Reference in New Issue
Block a user