Fix the keyboard up callback and a compiler warning.
authorDon Heyse <dheyse@hotmail.com>
Thu, 12 Jun 2003 19:02:56 +0000 (19:02 +0000)
committerDon Heyse <dheyse@hotmail.com>
Thu, 12 Jun 2003 19:02:56 +0000 (19:02 +0000)
git-svn-id: svn+ssh://svn.code.sf.net/p/freeglut/code/trunk/freeglut/freeglut@64 7f0cb862-5218-0410-a997-914c9d46530a

freeglut-1.3/freeglut_main.c

index 20a5304..af078a3 100644 (file)
@@ -1668,12 +1668,24 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPara
              */
             if( window->Callbacks.KeyboardUp != NULL )
                 window->Callbacks.KeyboardUp( 127, window->State.MouseX, window->State.MouseY );
+
+            break ;
           default:
-            /*
-             * Call the KeyboardUp callback for a regular character if there is one.
-             */
-            if( window->Callbacks.KeyboardUp != NULL )
-                window->Callbacks.KeyboardUp( wParam, window->State.MouseX, window->State.MouseY );
+            {
+              /*
+               * Call the KeyboardUp callback for a regular character if there is one.
+               */
+              BYTE state[ 256 ];
+              WORD code[ 2 ];
+
+              GetKeyboardState(state);
+
+              if ( ToAscii( wParam, 0, state, code, 0 ) == 1 )
+                wParam=code[ 0 ];
+
+              if( window->Callbacks.KeyboardUp != NULL )
+                window->Callbacks.KeyboardUp( (char)wParam, window->State.MouseX, window->State.MouseY );
+            }
         }
 
         /*
@@ -1719,7 +1731,7 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPara
             /*
              * Have the special callback executed:
              */
-            window->Callbacks.Keyboard( wParam, window->State.MouseX, window->State.MouseY );
+            window->Callbacks.Keyboard( (char)wParam, window->State.MouseX, window->State.MouseY );
 
             /*
              * Thrash the modifiers register now