From 0e95e6d521c6d2a024c584245138a039869c3ac1 Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Fri, 11 Jul 2025 10:45:10 -0700 Subject: [PATCH] Fix ConvertEventToRenderCoordinates for mouse button events (#582) --- miniwin/src/d3drm/d3drmdevice.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/miniwin/src/d3drm/d3drmdevice.cpp b/miniwin/src/d3drm/d3drmdevice.cpp index 987efb6e..25703f86 100644 --- a/miniwin/src/d3drm/d3drmdevice.cpp +++ b/miniwin/src/d3drm/d3drmdevice.cpp @@ -172,9 +172,7 @@ bool Direct3DRMDevice2Impl::ConvertEventToRenderCoordinates(SDL_Event* event) Resize(); break; } - case SDL_EVENT_MOUSE_MOTION: - case SDL_EVENT_MOUSE_BUTTON_DOWN: - case SDL_EVENT_MOUSE_BUTTON_UP: { + case SDL_EVENT_MOUSE_MOTION: { int rawX = event->motion.x; int rawY = event->motion.y; float x = (rawX - m_viewportTransform.offsetX) / m_viewportTransform.scale; @@ -183,6 +181,16 @@ bool Direct3DRMDevice2Impl::ConvertEventToRenderCoordinates(SDL_Event* event) event->motion.y = static_cast(y); break; } + case SDL_EVENT_MOUSE_BUTTON_DOWN: + case SDL_EVENT_MOUSE_BUTTON_UP: { + int rawX = event->button.x; + int rawY = event->button.y; + float x = (rawX - m_viewportTransform.offsetX) / m_viewportTransform.scale; + float y = (rawY - m_viewportTransform.offsetY) / m_viewportTransform.scale; + event->button.x = static_cast(x); + event->button.y = static_cast(y); + break; + } case SDL_EVENT_FINGER_MOTION: case SDL_EVENT_FINGER_DOWN: case SDL_EVENT_FINGER_UP: {