From 9acd72b9fba35a42b91308c77384489191d471dc Mon Sep 17 00:00:00 2001 From: Diederick Niehorster Date: Wed, 6 Mar 2013 09:27:18 +0000 Subject: [PATCH] on windows too: call resize callback only in response to WM message (yes, on both platform we now don't have an initial resize callback call, it'll be back later) git-svn-id: svn+ssh://svn.code.sf.net/p/freeglut/code/trunk/freeglut/freeglut@1559 7f0cb862-5218-0410-a997-914c9d46530a --- src/fg_main.c | 2 -- src/mswin/fg_main_mswin.c | 11 +++++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/fg_main.c b/src/fg_main.c index 9acfc31..2bc8435 100644 --- a/src/fg_main.c +++ b/src/fg_main.c @@ -74,8 +74,6 @@ static void fghReshapeWindow ( SFG_Window *window, int width, int height ) fgPlatformReshapeWindow ( window, width, height ); - INVOKE_WCB( *window, Reshape, ( width, height ) ); - /* * Force a window redraw. In Windows at least this is only a partial * solution: if the window is increasing in size in either dimension, diff --git a/src/mswin/fg_main_mswin.c b/src/mswin/fg_main_mswin.c index 70984b2..3cedeb3 100644 --- a/src/mswin/fg_main_mswin.c +++ b/src/mswin/fg_main_mswin.c @@ -506,8 +506,15 @@ LRESULT CALLBACK fgPlatformWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPAR #endif /* defined(_WIN32_WCE) */ if (width!=window->State.Width || height!=window->State.Height) - /* Something changed, need to resize */ - window->State.NeedToResize = GL_TRUE; + { + SFG_Window* saved_window = fgStructure.CurrentWindow; + + /* size changed, call reshape callback */ + INVOKE_WCB( *window, Reshape, ( width, height ) ); + glutPostRedisplay( ); + if( window->IsMenu ) + fgSetWindow( saved_window ); + } } /* according to docs, should return 0 */ -- 1.7.10.4