Browse Source

fix joystick deny keyboard movement

Pal Lockheart 6 years ago
parent
commit
c479813b80
2 changed files with 7 additions and 1 deletions
  1. 6 1
      input.c
  2. 1 0
      input.h

+ 6 - 1
input.c

@@ -519,6 +519,7 @@ PAL_JoystickEventFilter(
    switch (lpEvent->type)
    {
    case SDL_JOYAXISMOTION:
+      g_InputState.joystickNeedUpdate = TRUE;
       //
       // Moved an axis on joystick
       //
@@ -1180,11 +1181,15 @@ PAL_ProcessEvent(
 
 --*/
 {
+#if PAL_HAS_JOYSTICKS
+   g_InputState.joystickNeedUpdate = FALSE;
+#endif
    while (PAL_PollEvent(NULL));
 
    PAL_UpdateKeyboardState();
 #if PAL_HAS_JOYSTICKS
-   PAL_UpdateJoyStickState();
+   if(g_InputState.joystickNeedUpdate)
+      PAL_UpdateJoyStickState();
 #endif
 #if PAL_HAS_TOUCH
    PAL_TouchRepeatCheck();

+ 1 - 0
input.h

@@ -32,6 +32,7 @@ typedef struct tagPALINPUTSTATE
    DWORD                  dwKeyPress;
 #if PAL_HAS_JOYSTICKS
    int                    axisX,axisY;
+   BOOL                   joystickNeedUpdate;
 #endif
 } PALINPUTSTATE;