소스 검색

Fixed broken key repeat detection.

Camilla Berglund 11 년 전
부모
커밋
dc5c264e26
1개의 변경된 파일6개의 추가작업 그리고 1개의 파일을 삭제
  1. 6 1
      src/input.c

+ 6 - 1
src/input.c

@@ -132,15 +132,20 @@ void _glfwInputKey(_GLFWwindow* window, int key, int scancode, int action, int m
 {
     if (key >= 0 && key <= GLFW_KEY_LAST)
     {
+        GLboolean repeated = GL_FALSE;
+
         if (action == GLFW_RELEASE && window->key[key] == GLFW_RELEASE)
             return;
 
+        if (action == GLFW_PRESS && window->key[key] == GLFW_PRESS)
+            repeated = GL_TRUE;
+
         if (action == GLFW_RELEASE && window->stickyKeys)
             window->key[key] = _GLFW_STICK;
         else
             window->key[key] = (char) action;
 
-        if (action == GLFW_PRESS && window->key[key] == GLFW_PRESS)
+        if (repeated)
             action = GLFW_REPEAT;
     }