Repeat-key handling for Win32
authorNigel Stewart <nigels.com@gmail.com>
Mon, 15 Mar 2004 11:31:19 +0000 (11:31 +0000)
committerNigel Stewart <nigels.com@gmail.com>
Mon, 15 Mar 2004 11:31:19 +0000 (11:31 +0000)
Utilise both FreeGLUT state and per-window filtering modes

git-svn-id: svn+ssh://svn.code.sf.net/p/freeglut/code/trunk/freeglut/freeglut@483 7f0cb862-5218-0410-a997-914c9d46530a

src/freeglut_main.c

index 1763461..a356c1b 100644 (file)
@@ -1593,7 +1593,7 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam,
         int keypress = -1;
         POINT mouse_pos ;
 
-        if( fgState.IgnoreKeyRepeat && (HIWORD(lParam) & KF_REPEAT) )
+        if( ( fgState.KeyRepeat==GLUT_KEY_REPEAT_OFF || window->State.IgnoreKeyRepeat==GL_TRUE ) && (HIWORD(lParam) & KF_REPEAT) )
             break;
 
         /*
@@ -1742,7 +1742,7 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam,
     case WM_SYSCHAR:
     case WM_CHAR:
     {
-        if( fgState.IgnoreKeyRepeat && (HIWORD(lParam) & KF_REPEAT) )
+      if( (fgState.KeyRepeat==GLUT_KEY_REPEAT_OFF || window->State.IgnoreKeyRepeat==GL_TRUE) && (HIWORD(lParam) & KF_REPEAT) )
             break;
 
         fgState.Modifiers = fgGetWin32Modifiers( );