X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/204abcd474fa99071b7bb5b00f7e212b0bde16dc..ad653fa23069c5d9378247084f03c9a718c3ad62:/src/unix/joystick.cpp diff --git a/src/unix/joystick.cpp b/src/unix/joystick.cpp index b96c009826..27b3b6cb74 100644 --- a/src/unix/joystick.cpp +++ b/src/unix/joystick.cpp @@ -19,6 +19,7 @@ #ifndef WX_PRECOMP #include "wx/event.h" #include "wx/window.h" + #include "wx/log.h" #endif //WX_PRECOMP #include "wx/thread.h" @@ -102,7 +103,7 @@ void wxJoystickThread::SendEvent(wxEventType type, long ts, int change) jwx_event.SetEventObject(m_catchwin); if (m_catchwin) - m_catchwin->AddPendingEvent(jwx_event); + m_catchwin->GetEventHandler()->AddPendingEvent(jwx_event); } void* wxJoystickThread::Entry() @@ -136,6 +137,14 @@ void* wxJoystickThread::Entry() if ((j_evt.type & JS_EVENT_AXIS) && (j_evt.number < wxJS_MAX_AXES)) { + // Ignore invalid axis. + if ( j_evt.number >= wxJS_MAX_AXES ) + { + wxLogDebug(wxS("Invalid axis index %d in joystick message."), + j_evt.number); + continue; + } + if ( (m_axe[j_evt.number] + m_threshold < j_evt.value) || (m_axe[j_evt.number] - m_threshold > j_evt.value) ) {