Browse Source

Added comment on IsMouseButtonDown() issue

IsMouseButtonDown() does not process touch state down properly, state is reseted every frame...
Ray 5 years ago
parent
commit
2f5a7ddcc6
1 changed files with 8 additions and 1 deletions
  1. 8 1
      src/core.c

+ 8 - 1
src/core.c

@@ -2522,9 +2522,16 @@ bool IsMouseButtonDown(int button)
     if (IsGestureDetected(GESTURE_HOLD)) down = true;
 #else
     if (glfwGetMouseButton(CORE.Window.handle, button)) down = true;
+
+    // WARNING: currentButtonState is filled by an event callback and 
+    // reseted every frame (moving value to previousButtonState), consequently,
+    // if button is kept down, it is not properly detected using currentButtonState
+    // Same issue happens with touch events, they should be stycky an not reseted
     //if (CORE.Input.Mouse.currentButtonState[button] == 1) down = true;
 
     // Map touches to mouse buttons checking
+    // WARNING: currentTouchState is reseted every frame and only
+    // refilled on mouse event (not tracking stationary state properly!)
     if (CORE.Input.Touch.currentTouchState[button] == 1) down = true;
 #endif
 
@@ -4008,7 +4015,7 @@ static void KeyCallback(GLFWwindow *window, int key, int scancode, int action, i
 static void MouseButtonCallback(GLFWwindow *window, int button, int action, int mods)
 {
     CORE.Input.Mouse.currentButtonState[button] = action;
-
+    
 #if defined(SUPPORT_GESTURES_SYSTEM) && defined(SUPPORT_MOUSE_GESTURES)
     // Process mouse events as touches to be able to use mouse-gestures
     GestureEvent gestureEvent = { 0 };