Added keyup events code.
[freeglut] / freeglut-1.3 / freeglut_window.c
index 7e2bfac..943b027 100644 (file)
@@ -214,10 +214,10 @@ XVisualInfo* fgChooseVisual( void )
  * Setup the pixel format for a Win32 window
  */
 #if TARGET_HOST_WIN32
-gboolean fgSetupPixelFormat( SFG_Window* window, gboolean checkOnly )
+GLboolean fgSetupPixelFormat( SFG_Window* window, GLboolean checkOnly )
 {
        PIXELFORMATDESCRIPTOR* ppfd, pfd;
-       gint flags, pixelformat;
+       int flags, pixelformat;
 
        /*
         * Check if the window seems valid
@@ -324,7 +324,7 @@ void fgOpenWindow( SFG_Window* window, const char* title, int x, int y, int w, i
      *       This might speed up message processing. Is that true?
      */
     winAttr.event_mask        = StructureNotifyMask | SubstructureNotifyMask | ExposureMask |
-                                ButtonPressMask | ButtonReleaseMask | KeyPressMask |
+                                ButtonPressMask | ButtonReleaseMask | KeyPressMask | KeyRelease |
                                 VisibilityChangeMask | EnterWindowMask | LeaveWindowMask |
                                 PointerMotionMask | ButtonMotionMask;
     winAttr.background_pixmap = None;
@@ -389,8 +389,8 @@ void fgOpenWindow( SFG_Window* window, const char* title, int x, int y, int w, i
      */
     sizeHints.flags = 0;
 
-    sizeHints.flags |= (fgState.Position.Use == TRUE) ? USPosition : PPosition;
-    sizeHints.flags |= (fgState.Size.Use     == TRUE) ? USSize     : PSize;
+    if (fgState.Position.Use == TRUE) sizeHints.flags |= USPosition;
+    if (fgState.Size.Use     == TRUE) sizeHints.flags |= USSize;
 
     /*
      * Fill in the size hints values now (the x, y, width and height
@@ -436,16 +436,16 @@ void fgOpenWindow( SFG_Window* window, const char* title, int x, int y, int w, i
     XMapWindow( fgDisplay.Display, window->Window.Handle );
 
     /*
-     * This somehow fixes the glutGet() GLUT_WINDOW_X and GLUT_WINDOW_Y problem...
-     */
-    XMoveWindow( fgDisplay.Display, window->Window.Handle, x, y );
-
-    /*
      * In game mode, move the viewport a bit to hide the decorations.
      * This code depends on the XFree86 video mode extensions.
      */
     if( gameMode == TRUE )
     {
+        /*
+         * This somehow fixes the glutGet() GLUT_WINDOW_X and GLUT_WINDOW_Y problem...
+         */
+        XMoveWindow( fgDisplay.Display, window->Window.Handle, x, y );
+
 #       ifdef X_XF86VidModeSetViewPort
 
         /*
@@ -469,7 +469,7 @@ void fgOpenWindow( SFG_Window* window, const char* title, int x, int y, int w, i
 #elif TARGET_HOST_WIN32
 
        WNDCLASS wc;
-       gint flags;
+       int flags;
        ATOM atom;
        HWND hWnd;
 
@@ -479,7 +479,7 @@ void fgOpenWindow( SFG_Window* window, const char* title, int x, int y, int w, i
         * Grab the window class we have registered on glutInit():
         */
        atom = GetClassInfo( fgDisplay.Instance, "FREEGLUT", &wc );
-       g_assert( atom != 0 );
+       assert( atom != 0 );
 
     if( gameMode == FALSE )
     {
@@ -512,7 +512,7 @@ void fgOpenWindow( SFG_Window* window, const char* title, int x, int y, int w, i
         /*
          * In game mode, the story is a little bit different...
          */
-        g_assert( window->Parent == NULL );
+        assert( window->Parent == NULL );
 
         /*
          * Set the window creation flags appropriately to make the window entirely visible:
@@ -537,7 +537,7 @@ void fgOpenWindow( SFG_Window* window, const char* title, int x, int y, int w, i
        /*
      * Make sure window was created
      */
-       g_assert( window->Window.Handle != NULL );
+       assert( window->Window.Handle != NULL );
 
     /*
      * Show and update the main window. Hide the mouse cursor.