Simple Directmedia Layer
Go to file
Sam Lantinga 6a3ad8a998 Fixed bug 2367 - Bad mouse motion coordinates with two windows where one has changed logical size
Andreas Ragnerstam

I have two windows where one has a renderer where the logical size has been changed with SDL_RenderSetLogicalSize. When I get SDL_MOUSEMOTION events belonging to the non-scaled window these will have been scaled with the factor of the scaled window, which is not expected.

Adding some printf debugging to SDL_RendererEventWatch of SDL_render.c, where (event->type == SDL_MOUSEMOTION), I found that for every mouse motion SDL_RendererEventWatch is called twice and the event->motion.x and event.motion.y are set twice for the event, once for each renderer where only the last one set will be saved to the event struct. This will work fine if both renderers have the same scale, but otherwise the motion coordinates will be scaled for the renderer belonging to another window than the mouse was moved in.

I guess one solution would be to check that window == renderer->window for SDL_MOUSEMOTION events, similar to what is done for when SDL_WINDOWEVENT events.

I get the same error on both X11 and Windows.
The same problem also exists for SDL_MOUSEBUTTONDOWN and SDL_MOUSEBUTTONUP events.
2015-05-28 12:18:05 -07:00
acinclude Fix a libtool issue with some mingw-w64 cross compilers (thanks, Ozkan!). 2015-05-26 19:54:06 -04:00
android-project Android: Added basic drop file support (thanks, "noxalus"!). 2015-05-26 20:36:45 -04:00
build-scripts Script from Sylvain to automate updating the copyright year 2015-05-26 06:27:12 -07:00
cmake Windows: Always set the system timer resolution to 1ms by default. 2015-04-20 12:22:44 -04:00
debian Updated the copyright year to 2015 2015-05-26 06:27:46 -07:00
docs Windows: Always set the system timer resolution to 1ms by default. 2015-04-20 12:22:44 -04:00
include X11: Add Xdbe support to message boxes (thanks, Melker!). 2015-05-28 00:30:21 -04:00
premake X11: Add Xdbe support to message boxes (thanks, Melker!). 2015-05-28 00:30:21 -04:00
src Fixed bug 2367 - Bad mouse motion coordinates with two windows where one has changed logical size 2015-05-28 12:18:05 -07:00
test Fixed X11 build, added code to print initial modifiers to checkkeys 2015-05-28 09:52:48 -07:00
VisualC Windows: Always set the system timer resolution to 1ms by default. 2015-04-20 12:22:44 -04:00
VisualC-WinRT Windows: Always set the system timer resolution to 1ms by default. 2015-04-20 12:22:44 -04:00
visualtest Updated the copyright year to 2015 2015-05-26 06:27:46 -07:00
Xcode Updated the copyright year to 2015 2015-05-26 06:27:46 -07:00
Xcode-iOS Fixed building the iOS Demo files in debug mode 2015-05-06 12:42:14 -03:00
.hgignore Windows: Always set the system timer resolution to 1ms by default. 2015-04-20 12:22:44 -04:00
Android.mk Android: Replaced spaces with tab in Android.mk file. 2015-05-06 21:11:06 +02:00
autogen.sh Windows: Always set the system timer resolution to 1ms by default. 2015-04-20 12:22:44 -04:00
BUGS.txt Windows: Always set the system timer resolution to 1ms by default. 2015-04-20 12:22:44 -04:00
cmake_uninstall.cmake.in Windows: Always set the system timer resolution to 1ms by default. 2015-04-20 12:22:44 -04:00
CMakeLists.txt CMake: Slightly better fix for installation target (thanks, Anthony!). 2015-04-22 20:25:19 -04:00
configure X11: Add Xdbe support to message boxes (thanks, Melker!). 2015-05-28 00:30:21 -04:00
configure.in X11: Add Xdbe support to message boxes (thanks, Melker!). 2015-05-28 00:30:21 -04:00
COPYING.txt Updated the copyright year to 2015 2015-05-26 06:27:46 -07:00
CREDITS.txt Windows: Always set the system timer resolution to 1ms by default. 2015-04-20 12:22:44 -04:00
INSTALL.txt Windows: Always set the system timer resolution to 1ms by default. 2015-04-20 12:22:44 -04:00
Makefile.in Windows: Always set the system timer resolution to 1ms by default. 2015-04-20 12:22:44 -04:00
Makefile.minimal Windows: Always set the system timer resolution to 1ms by default. 2015-04-20 12:22:44 -04:00
Makefile.pandora Windows: Always set the system timer resolution to 1ms by default. 2015-04-20 12:22:44 -04:00
Makefile.psp Windows: Always set the system timer resolution to 1ms by default. 2015-04-20 12:22:44 -04:00
Makefile.wiz Windows: Always set the system timer resolution to 1ms by default. 2015-04-20 12:22:44 -04:00
README-SDL.txt Windows: Always set the system timer resolution to 1ms by default. 2015-04-20 12:22:44 -04:00
README.txt Windows: Always set the system timer resolution to 1ms by default. 2015-04-20 12:22:44 -04:00
sdl2-config.in Windows: Always set the system timer resolution to 1ms by default. 2015-04-20 12:22:44 -04:00
sdl2.m4 Windows: Always set the system timer resolution to 1ms by default. 2015-04-20 12:22:44 -04:00
sdl2.pc.in Windows: Always set the system timer resolution to 1ms by default. 2015-04-20 12:22:44 -04:00
SDL2.spec.in Windows: Always set the system timer resolution to 1ms by default. 2015-04-20 12:22:44 -04:00
TODO.txt Windows: Always set the system timer resolution to 1ms by default. 2015-04-20 12:22:44 -04:00
VisualC.html Windows: Always set the system timer resolution to 1ms by default. 2015-04-20 12:22:44 -04:00
WhatsNew.txt Windows: Always set the system timer resolution to 1ms by default. 2015-04-20 12:22:44 -04:00

                         Simple DirectMedia Layer

                                  (SDL)

                                Version 2.0

---
http://www.libsdl.org/

Simple DirectMedia Layer is a cross-platform development library designed
to provide low level access to audio, keyboard, mouse, joystick, and graphics
hardware via OpenGL and Direct3D. It is used by video playback software,
emulators, and popular games including Valve's award winning catalog
and many Humble Bundle games.

More extensive documentation is available in the docs directory, starting
with README.md

Enjoy!
	Sam Lantinga				(slouken@libsdl.org)