diff -r 1223f50edde3 src/events/SDL_touch.c --- a/src/events/SDL_touch.c Mon Apr 08 21:27:24 2019 +0200 +++ b/src/events/SDL_touch.c Tue Apr 09 10:39:45 2019 +0200 @@ -257,18 +257,16 @@ if (finger_touching == SDL_FALSE) { int pos_x = (int)(x * (float)window->w); int pos_y = (int)(y * (float)window->h); - if (pos_x >= 0 && pos_y >= 0 && pos_x < window->w && pos_y < window->h) { - SDL_SendMouseMotion(window, SDL_TOUCH_MOUSEID, 0, pos_x, pos_y); - SDL_SendMouseButton(window, SDL_TOUCH_MOUSEID, SDL_PRESSED, SDL_BUTTON_LEFT); - } + if (pos_x < 0) pos_x = 0; + if (pos_x > window->w - 1) pos_x = window->w - 1; + if (pos_y < 0) pos_y = 0; + if (pos_y > window->h - 1) pos_y = window->h - 1; + SDL_SendMouseMotion(window, SDL_TOUCH_MOUSEID, 0, pos_x, pos_y); + SDL_SendMouseButton(window, SDL_TOUCH_MOUSEID, SDL_PRESSED, SDL_BUTTON_LEFT); } } else { if (finger_touching == SDL_TRUE && track_touchid == id && track_fingerid == fingerid) { - int pos_x = (int)(x * (float)window->w); - int pos_y = (int)(y * (float)window->h); - if (pos_x >= 0 && pos_y >= 0 && pos_x < window->w && pos_y < window->h) { - SDL_SendMouseButton(window, SDL_TOUCH_MOUSEID, SDL_RELEASED, SDL_BUTTON_LEFT); - } + SDL_SendMouseButton(window, SDL_TOUCH_MOUSEID, SDL_RELEASED, SDL_BUTTON_LEFT); } } } @@ -361,9 +359,11 @@ if (finger_touching == SDL_TRUE && track_touchid == id && track_fingerid == fingerid) { int pos_x = (int)(x * (float)window->w); int pos_y = (int)(y * (float)window->h); - if (pos_x >= 0 && pos_y >= 0 && pos_x < window->w && pos_y < window->h) { - SDL_SendMouseMotion(window, SDL_TOUCH_MOUSEID, 0, pos_x, pos_y); - } + if (pos_x < 0) pos_x = 0; + if (pos_x > window->w - 1) pos_x = window->w - 1; + if (pos_y < 0) pos_y = 0; + if (pos_y > window->h - 1) pos_y = window->h - 1; + SDL_SendMouseMotion(window, SDL_TOUCH_MOUSEID, 0, pos_x, pos_y); } } }