Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Don't crash if we have the extension but couldn't load the XInput sha…
Browse files Browse the repository at this point in the history
…red library.
  • Loading branch information
slouken committed Feb 14, 2013
1 parent 4149992 commit c4ae246
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 7 deletions.
Binary file not shown.
Binary file not shown.
Binary file not shown.
21 changes: 14 additions & 7 deletions src/video/x11/SDL_x11xinput2.c
Expand Up @@ -62,7 +62,8 @@ static void parse_valuators(const double *input_values,unsigned char *mask,int m
#endif /* SDL_VIDEO_DRIVER_X11_XINPUT2 */

void
X11_InitXinput2(_THIS) {
X11_InitXinput2(_THIS)
{
#if SDL_VIDEO_DRIVER_X11_XINPUT2
SDL_VideoData *data = (SDL_VideoData *) _this->driverdata;

Expand All @@ -83,7 +84,8 @@ X11_InitXinput2(_THIS) {
*
* FIXME:event and err are not needed but if not passed XQueryExtension returns SegmentationFault
*/
if (!XQueryExtension(data->display, "XInputExtension", &xinput2_opcode, &event, &err)) {
if (!SDL_X11_HAVE_XINPUT2 ||
!XQueryExtension(data->display, "XInputExtension", &xinput2_opcode, &event, &err)) {
return;
}

Expand Down Expand Up @@ -122,7 +124,8 @@ X11_InitXinput2(_THIS) {


int
X11_HandleXinput2Event(SDL_VideoData *videodata,XGenericEventCookie *cookie) {
X11_HandleXinput2Event(SDL_VideoData *videodata,XGenericEventCookie *cookie)
{
#if SDL_VIDEO_DRIVER_X11_XINPUT2
if(cookie->extension != xinput2_opcode) {
return 0;
Expand Down Expand Up @@ -175,7 +178,8 @@ X11_HandleXinput2Event(SDL_VideoData *videodata,XGenericEventCookie *cookie) {
}

void
X11_InitXinput2Multitouch(_THIS) {
X11_InitXinput2Multitouch(_THIS)
{
#if SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH
SDL_VideoData *data = (SDL_VideoData *) _this->driverdata;
XIDeviceInfo *info;
Expand Down Expand Up @@ -218,7 +222,8 @@ X11_InitXinput2Multitouch(_THIS) {
}

void
X11_Xinput2SelectTouch(_THIS, SDL_Window *window) {
X11_Xinput2SelectTouch(_THIS, SDL_Window *window)
{
#if SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH
if (!X11_Xinput2IsMultitouchSupported()) {
return;
Expand All @@ -243,7 +248,8 @@ X11_Xinput2SelectTouch(_THIS, SDL_Window *window) {


int
X11_Xinput2IsInitialized() {
X11_Xinput2IsInitialized()
{
#if SDL_VIDEO_DRIVER_X11_XINPUT2
return xinput2_initialized;
#else
Expand All @@ -252,7 +258,8 @@ X11_Xinput2IsInitialized() {
}

int
X11_Xinput2IsMultitouchSupported() {
X11_Xinput2IsMultitouchSupported()
{
#if SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH
return xinput2_initialized && xinput2_multitouch_supported;
#else
Expand Down

0 comments on commit c4ae246

Please sign in to comment.