X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffg_callbacks.c;h=11924b360cd54e9a489043ebdbebd40fed599dca;hb=2c12c9eb8d63cabac2d4113b4f54fdf53da8368c;hp=5ca376189251fbeea51fca7fcac899cec058915e;hpb=55a8bc593affc3565d63453d35773cdbf1046216;p=freeglut diff --git a/src/fg_callbacks.c b/src/fg_callbacks.c index 5ca3761..11924b3 100644 --- a/src/fg_callbacks.c +++ b/src/fg_callbacks.c @@ -1,5 +1,5 @@ /* - * freeglut_callbacks.c + * fg_callbacks.c * * The callbacks setting methods. * @@ -247,11 +247,12 @@ void FGAPIENTRY glutJoystickFunc( FGCBJoystick callback, int pollInterval ) SET_CALLBACK( Joystick ); fgStructure.CurrentWindow->State.JoystickPollRate = pollInterval; - fgStructure.CurrentWindow->State.JoystickLastPoll = - fgElapsedTime() - fgStructure.CurrentWindow->State.JoystickPollRate; - - if( fgStructure.CurrentWindow->State.JoystickLastPoll < 0 ) + /* set last poll time such that joystick will be polled asap */ + fgStructure.CurrentWindow->State.JoystickLastPoll = fgElapsedTime(); + if (fgStructure.CurrentWindow->State.JoystickLastPoll < pollInterval) fgStructure.CurrentWindow->State.JoystickLastPoll = 0; + else + fgStructure.CurrentWindow->State.JoystickLastPoll -= pollInterval; }