Fixed bug 1781 - SDL sets an error for the initial touch on Android.

Philipp Wiesemann

SDL sets an error to be queried with SDL_GetError() for the initial touch on Android.

Android_OnTouch() in SDL_androidtouch.c uses SDL_GetTouch() to check if a touch device was already added. SDL_GetTouch() sets the error "Unknown touch device" for an out of range access because touch devices are added after initial touch. I think this error is confusing because it always happens by design.

I attached a patch which removes the call to SDL_GetTouch() and only uses SDL_AddTouch() which does the check (if already added) again and does not set an error (if not added yet).
This commit is contained in:
Sam Lantinga 2013-04-02 07:51:23 -07:00
parent 888d367270
commit 3bdfec9df0

View file

@ -63,10 +63,8 @@ void Android_OnTouch(int touch_device_id_in, int pointer_finger_id_in, int actio
} }
touchDeviceId = (SDL_TouchID)touch_device_id_in; touchDeviceId = (SDL_TouchID)touch_device_id_in;
if (!SDL_GetTouch(touchDeviceId)) { if (SDL_AddTouch(touchDeviceId, "") < 0) {
if (SDL_AddTouch(touchDeviceId, "") < 0) { SDL_Log("error: can't add touch %s, %d", __FILE__, __LINE__);
SDL_Log("error: can't add touch %s, %d", __FILE__, __LINE__);
}
} }
fingerId = (SDL_FingerID)pointer_finger_id_in; fingerId = (SDL_FingerID)pointer_finger_id_in;