From e51fc4836cd6979e3148124d1fc900e8ad32d1f7 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 21 Jul 2013 12:54:27 -0700 Subject: [PATCH] Fixed bug 1813 - MouseMotion relative values do not respect renderer LogicalSize driedfruit A trivial issue, the xrel and yrel values of MouseMotion event struct are not adjusted to renderer logical size. --- src/render/SDL_render.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/render/SDL_render.c b/src/render/SDL_render.c index 7f91e4510..c87ba2f14 100644 --- a/src/render/SDL_render.c +++ b/src/render/SDL_render.c @@ -151,6 +151,16 @@ SDL_RendererEventWatch(void *userdata, SDL_Event *event) event->motion.y -= renderer->viewport.y; event->motion.x = (int)(event->motion.x / renderer->scale.x); event->motion.y = (int)(event->motion.y / renderer->scale.y); + if (event->motion.xrel > 0) { + event->motion.xrel = SDL_max(1, (int)(event->motion.xrel / renderer->scale.x)); + } else if (event->motion.xrel < 0) { + event->motion.xrel = SDL_min(-1, (int)(event->motion.xrel / renderer->scale.x)); + } + if (event->motion.yrel > 0) { + event->motion.yrel = SDL_max(1, (int)(event->motion.yrel / renderer->scale.y)); + } else if (event->motion.yrel < 0) { + event->motion.yrel = SDL_min(-1, (int)(event->motion.yrel / renderer->scale.y)); + } } } else if (event->type == SDL_MOUSEBUTTONDOWN || event->type == SDL_MOUSEBUTTONUP) {