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,11 +63,9 @@ 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;
switch (action) { switch (action) {