From 837d09525d3e19cb5f5a212a41fdfdca729f3542 Mon Sep 17 00:00:00 2001 From: Don Heyse Date: Thu, 12 Jun 2003 19:02:56 +0000 Subject: [PATCH] Fix the keyboard up callback and a compiler warning. 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 | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/freeglut-1.3/freeglut_main.c b/freeglut-1.3/freeglut_main.c index 20a5304..af078a3 100644 --- a/freeglut-1.3/freeglut_main.c +++ b/freeglut-1.3/freeglut_main.c @@ -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 -- 1.7.10.4