Don't crash if we have the extension but couldn't load the XInput shared library.
authorSam Lantinga <slouken@libsdl.org>
Thu, 14 Feb 2013 15:40:19 -0800
changeset 6877 7287d385e6b3
parent 6876 3a4f7453da33
child 6878 30579e86ac24
Don't crash if we have the extension but couldn't load the XInput shared library.
Xcode/TemplatesForXcodeTiger/SDL Application/English.lproj/InfoPlist.strings
Xcode/TemplatesForXcodeTiger/SDL Cocoa Application/English.lproj/InfoPlist.strings
Xcode/TemplatesForXcodeTiger/SDL OpenGL Application/English.lproj/InfoPlist.strings
src/video/x11/SDL_x11xinput2.c
Binary file Xcode/TemplatesForXcodeTiger/SDL Application/English.lproj/InfoPlist.strings has changed
Binary file Xcode/TemplatesForXcodeTiger/SDL Cocoa Application/English.lproj/InfoPlist.strings has changed
Binary file Xcode/TemplatesForXcodeTiger/SDL OpenGL Application/English.lproj/InfoPlist.strings has changed
--- a/src/video/x11/SDL_x11xinput2.c	Thu Feb 14 13:22:05 2013 -0800
+++ b/src/video/x11/SDL_x11xinput2.c	Thu Feb 14 15:40:19 2013 -0800
@@ -62,7 +62,8 @@
 #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;
 
@@ -83,7 +84,8 @@
     *
     * 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;
     }
 
@@ -122,7 +124,8 @@
 
 
 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;
@@ -175,7 +178,8 @@
 }
 
 void 
-X11_InitXinput2Multitouch(_THIS) {
+X11_InitXinput2Multitouch(_THIS)
+{
 #if SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH
     SDL_VideoData *data = (SDL_VideoData *) _this->driverdata;
     XIDeviceInfo *info;
@@ -218,7 +222,8 @@
 }
 
 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;
@@ -243,7 +248,8 @@
 
 
 int 
-X11_Xinput2IsInitialized() {
+X11_Xinput2IsInitialized()
+{
 #if SDL_VIDEO_DRIVER_X11_XINPUT2
     return xinput2_initialized;
 #else
@@ -252,7 +258,8 @@
 }
 
 int
-X11_Xinput2IsMultitouchSupported() {
+X11_Xinput2IsMultitouchSupported()
+{
 #if SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH
     return xinput2_initialized && xinput2_multitouch_supported;
 #else