as per Ioannis Petikas' suggestion on the mailing list, set NeedToResize
authorDiederick Niehorster <dcnieho@gmail.com>
Fri, 15 Jun 2012 05:47:32 +0000 (05:47 +0000)
committerDiederick Niehorster <dcnieho@gmail.com>
Fri, 15 Jun 2012 05:47:32 +0000 (05:47 +0000)
to false before calling fghReshapeWindow

git-svn-id: svn+ssh://svn.code.sf.net/p/freeglut/code/trunk/freeglut/freeglut@1344 7f0cb862-5218-0410-a997-914c9d46530a

src/fg_main.c

index 99040af..c3bccdc 100644 (file)
@@ -88,6 +88,7 @@ static void fghReshapeWindow ( SFG_Window *window, int width, int height )
      * the already-drawn part does not get drawn again and things look funny.
      * But without this we get this bad behaviour whenever we resize the
      * window.
+     * DN: Hmm.. the above sounds like a concern only in single buffered mode...
      */
     window->State.Redisplay = GL_TRUE;
 
@@ -120,13 +121,17 @@ void fghRedrawWindow ( SFG_Window *window )
 
     if( window->State.NeedToResize )
     {
+        /* Set need to resize to false before calling fghReshapeWindow, otherwise
+           in the case the user's reshape callback calls glutReshapeWindow,
+           his request would get canceled after fghReshapeWindow gets called.
+         */
+        window->State.NeedToResize = GL_FALSE;
+
         fghReshapeWindow(
             window,
             window->State.Width,
             window->State.Height
         );
-
-        window->State.NeedToResize = GL_FALSE;
     }
 
     INVOKE_WCB( *window, Display, ( ) );