Fixing the "XRANDR" version testing in "freeglut_gamemode.c", addressing bug 3383843...
authorJohn F. Fay <johnffay@nettally.com>
Mon, 5 Sep 2011 12:56:50 +0000 (12:56 +0000)
committerJohn F. Fay <johnffay@nettally.com>
Mon, 5 Sep 2011 12:56:50 +0000 (12:56 +0000)
git-svn-id: svn+ssh://svn.code.sf.net/p/freeglut/code/trunk/freeglut/freeglut@935 7f0cb862-5218-0410-a997-914c9d46530a

src/freeglut_gamemode.c

index e590385..deeb63f 100644 (file)
@@ -58,7 +58,8 @@ static int xrandr_resize(int xsz, int ysz, int rate, int just_checking)
     /* we only heed the rate if we CAN actually use it (Xrandr >= 1.1) and
      * the user actually cares about it (rate > 0)
      */
-    use_rate = rate > 0 && ver_major >= 1 && ver_minor >= 1;
+    use_rate = ( rate > 0 ) && ( ( ver_major >= 1 ) ||
+                                        ( ver_major == 1 ) && ( ver_minor >= 1 ) );
 
     /* this loop is only so that the whole thing will be repeated if someone
      * else changes video mode between our query the current information and
@@ -104,7 +105,7 @@ static int xrandr_resize(int xsz, int ysz, int rate, int just_checking)
         if(res_idx == -1)
             break;  /* no matching resolution */
 
-#if RANDR_MAJOR >= 1 && RANDR_MINOR >= 1
+#if ( RANDR_MAJOR >= 1 ) || ( ( RANDR_MAJOR == 1 ) && ( RANDR_MINOR >= 1 ) )
         if(rate <= 0) {
             fgState.GameModeRefresh = XRRConfigCurrentRate(xrr_config);
         }
@@ -133,7 +134,7 @@ static int xrandr_resize(int xsz, int ysz, int rate, int just_checking)
             break;
         }
 
-#if RANDR_MAJOR >= 1 && RANDR_MINOR >= 1
+#if ( RANDR_MAJOR >= 1 ) || ( ( RANDR_MAJOR == 1 ) && ( RANDR_MINOR >= 1 ) )
         if(use_rate)
             result = XRRSetScreenConfigAndRate(fgDisplay.Display, xrr_config,
                     fgDisplay.RootWindow, res_idx, rot, rate, timestamp);
@@ -193,7 +194,7 @@ static void fghRememberState( void )
             fgDisplay.prev_ysz = ssizes[curr].height;
             fgDisplay.prev_refresh = -1;
 
-#       if RANDR_MAJOR >= 1 && RANDR_MINOR >= 1
+#       if ( RANDR_MAJOR >= 1 ) || ( ( RANDR_MAJOR == 1 ) && ( RANDR_MINOR >= 1 ) )
             if(fgState.GameModeRefresh != -1) {
                 fgDisplay.prev_refresh = XRRConfigCurrentRate(xrr_config);
             }