From: Nigel Stewart Date: Mon, 5 Jan 2004 15:49:14 +0000 (+0000) Subject: Win32 glutIconifyWindow() patch contributed by John F. Fay X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=commitdiff_plain;h=81417e365e0eb2726f1806087f782335be18aef6;p=freeglut Win32 glutIconifyWindow() patch contributed by John F. Fay Restrict resize callbacks to visible windows When iconified via glutIconifyWindow(), don't pass (0,0) to resize callback Note that minimising the window via the menu or minimise button is not yet resolved. git-svn-id: svn+ssh://svn.code.sf.net/p/freeglut/code/trunk/freeglut/freeglut@443 7f0cb862-5218-0410-a997-914c9d46530a --- diff --git a/src/freeglut_main.c b/src/freeglut_main.c index 34e284b..6935ff1 100644 --- a/src/freeglut_main.c +++ b/src/freeglut_main.c @@ -1214,11 +1214,16 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, case WM_SIZE: /* - * We got resized... But check if the window has been already added... + * If the window is visible, then it is the user manually resizing it. + * If it is not, then it is the system sending us a dummy resize with + * zero dimensions on a "glutIconifyWindow" call. */ - window->State.NeedToResize = GL_TRUE; - window->State.Width = LOWORD(lParam); - window->State.Height = HIWORD(lParam); + if( window->State.Visible ) + { + window->State.NeedToResize = GL_TRUE; + window->State.Width = LOWORD(lParam); + window->State.Height = HIWORD(lParam); + } break; #if 0 case WM_SETFOCUS: diff --git a/src/freeglut_window.c b/src/freeglut_window.c index c92fbcb..12e6b52 100644 --- a/src/freeglut_window.c +++ b/src/freeglut_window.c @@ -719,6 +719,8 @@ void FGAPIENTRY glutIconifyWindow( void ) freeglut_assert_ready; freeglut_assert_window; + fgStructure.Window->State.Visible = GL_FALSE; + #if TARGET_HOST_UNIX_X11 XIconifyWindow( fgDisplay.Display, fgStructure.Window->Window.Handle,