Addressing bug report 3368139 about warnings under OpenSUSE. I added two explicit...
[freeglut] / src / freeglut_window.c
index 897b03c..a5884ae 100644 (file)
@@ -1076,7 +1076,7 @@ static void get_display_origin(int *xp,int *yp)
 #if TARGET_HOST_POSIX_X11
 static Bool fghWindowIsVisible( Display *display, XEvent *event, XPointer arg)
 {
-    Window window = arg;
+    Window window = (Window)arg;
     return (event->type == MapNotify) && (event->xmap.window == window);
 }
 #endif
@@ -1092,7 +1092,7 @@ void fgOpenWindow( SFG_Window* window, const char* title,
                    GLboolean gameMode, GLboolean isSubWindow )
 {
 #if TARGET_HOST_POSIX_X11
-    XVisualInfo * visualInfo;
+    XVisualInfo * visualInfo = NULL;
     XSetWindowAttributes winAttr;
     XTextProperty textProperty;
     XSizeHints sizeHints;
@@ -1297,7 +1297,7 @@ void fgOpenWindow( SFG_Window* window, const char* title,
     XFree(visualInfo);
 
     if( !isSubWindow)
-        XPeekIfEvent( fgDisplay.Display, &eventReturnBuffer, &fghWindowIsVisible, window->Window.Handle );
+        XPeekIfEvent( fgDisplay.Display, &eventReturnBuffer, &fghWindowIsVisible, (XPointer)(window->Window.Handle) );
 
 #elif TARGET_HOST_MS_WINDOWS
 
@@ -1367,7 +1367,7 @@ void fgOpenWindow( SFG_Window* window, const char* title,
     if( gameMode )
     {
         /* if in gamemode, query the origin of specified by the -display
-         * parameter command line (if any) and offset the upper-left corner
+         * command line parameter (if any) and offset the upper-left corner
          * of the window so we create the window on that screen.
          * The -display argument doesn't do anything if not trying to enter
          * gamemode.
@@ -2000,6 +2000,7 @@ void FGAPIENTRY glutFullScreen( void )
     }
 
     {
+#if(WINVER >= 0x0500) /* Windows 2000 or later */
         DWORD s;
         RECT rect;
         HMONITOR hMonitor;
@@ -2031,6 +2032,22 @@ void FGAPIENTRY glutFullScreen( void )
         mi.cbSize = sizeof(mi);
         GetMonitorInfo(hMonitor, &mi);
         rect = mi.rcMonitor;
+#else   /* if (WINVER >= 0x0500) */
+        RECT rect;
+
+        /* For fullscreen mode, force the top-left corner to 0,0
+         * and adjust the window rectangle so that the client area
+         * covers the whole screen.
+         */
+
+        rect.left   = 0;
+        rect.top    = 0;
+        rect.right  = fgDisplay.ScreenWidth;
+        rect.bottom = fgDisplay.ScreenHeight;
+
+        AdjustWindowRect ( &rect, WS_OVERLAPPEDWINDOW | WS_CLIPSIBLINGS |
+                                  WS_CLIPCHILDREN, FALSE );
+#endif  /* (WINVER >= 0x0500) */
 
         /*
          * then resize window
@@ -2048,7 +2065,7 @@ void FGAPIENTRY glutFullScreen( void )
                       SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOSENDCHANGING |
                       SWP_NOZORDER
                     );
-        
+
         win->State.IsFullscreen = GL_TRUE;
     }
 #endif