# HG changeset patch # User Sam Lantinga # Date 1295845322 28800 # Node ID 8c88cae7911ee21b8703cd954011aa89cee53c7b # Parent 930614179450b01c162e1673af571cd6a66f23a5 Michael Bicha to Sam I came across further issues with SDL 1.2.14 on win32 in combination with touch screens. When you touched the screen older SDLs reported SDL_MOUSEMOTION to the touch position SDL_MOUSEBUTTONDOWN at the touch position 1.2.14 reports SDL_MOUSEBUTTONDOWN at the last mouse position before the touch and then a SDL_MOUSEMOTION to the touch position I found that to fix it in the file SDL_sysevents.c i had to put back the following lines from 1.2.12 to get it working correctly again: if ( mouse_relative ) { /* RJR: March 28, 2000 report internal mouse position if in relative mode */ x = 0; y = 0; } else { x = (Sint16)LOWORD(lParam); y = (Sint16)HIWORD(lParam); #ifdef _WIN32_WCE if (SDL_VideoSurface) GapiTransform(this->hidden->userOrientation, this->hidden->hiresFix, &x, &y); #endif } posted = SDL_PrivateMouseButton( state, button, x, y); where there was only posted = SDL_PrivateMouseButton( state, button, 0, 0); in 1.2.14 (appx. line 484) please feel free to put that change into any SDL lib you like in any way you like and thanks for your great work ! diff -r 930614179450 -r 8c88cae7911e src/video/wincommon/SDL_sysevents.c --- a/src/video/wincommon/SDL_sysevents.c Fri Dec 03 16:55:25 2010 -0800 +++ b/src/video/wincommon/SDL_sysevents.c Sun Jan 23 21:02:02 2011 -0800 @@ -479,8 +479,21 @@ mouse_pressed = 0; } } + if ( mouse_relative ) { + /* RJR: March 28, 2000 + report internal mouse position if in relative mode */ + x = 0; y = 0; + } else { + x = (Sint16)LOWORD(lParam); + y = (Sint16)HIWORD(lParam); +#ifdef _WIN32_WCE + if (SDL_VideoSurface) + GapiTransform(this->hidden->userOrientation, +this->hidden->hiresFix, &x, &y); +#endif + } posted = SDL_PrivateMouseButton( - state, button, 0, 0); + state, button, x, y); /* * MSDN says: