From eec4e9ff6a19a04d0ceff448dd4b16b1f6f6508c Mon Sep 17 00:00:00 2001 From: Thomas Jarosch Date: Wed, 25 May 2011 20:11:03 +0000 Subject: Fix SDL touch screen handling on the screen edges git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29925 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/hosted/sdl/system-sdl.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'firmware/target/hosted/sdl/system-sdl.c') diff --git a/firmware/target/hosted/sdl/system-sdl.c b/firmware/target/hosted/sdl/system-sdl.c index 750a0144a4..93a8a7cb66 100644 --- a/firmware/target/hosted/sdl/system-sdl.c +++ b/firmware/target/hosted/sdl/system-sdl.c @@ -138,8 +138,15 @@ static int sdl_event_thread(void * param) } #if (CONFIG_PLATFORM & (PLATFORM_MAEMO|PLATFORM_PANDORA)) - /* Hide mouse cursor on real touchscreen device */ - SDL_ShowCursor(SDL_DISABLE); + /* SDL touch screen fix: Work around a SDL assumption that returns + relative mouse coordinates when you get to the screen edges + using the touchscreen and a disabled mouse cursor. + */ + uint8_t hiddenCursorData = 0; + SDL_Cursor *hiddenCursor = SDL_CreateCursor(&hiddenCursorData, &hiddenCursorData, 8, 1, 0, 0); + + SDL_ShowCursor(SDL_ENABLE); + SDL_SetCursor(hiddenCursor); #endif SDL_WM_SetCaption(UI_TITLE, NULL); @@ -174,6 +181,10 @@ static int sdl_event_thread(void * param) SDL_WaitThread(maemo_thread, NULL); #endif +#if (CONFIG_PLATFORM & (PLATFORM_MAEMO|PLATFORM_PANDORA)) + SDL_FreeCursor(hiddenCursor); +#endif + if(picture_surface) SDL_FreeSurface(picture_surface); -- cgit v1.2.3