x11: make last mouse coords sane upon window entry (thanks, Cengiz!).

(and thanks to Cengiz for many of the previous Unreal-related
patches! They were generically credited to Epic Games, but a large
amount of that work was his contribution.)

Fixes Bugzilla #3067.
This commit is contained in:
Ryan C. Gordon 2016-01-07 19:58:00 -05:00
parent 757e994eaa
commit ed62033366

View File

@ -636,6 +636,7 @@ X11_DispatchEvent(_THIS)
/* Gaining mouse coverage? */
case EnterNotify:{
SDL_Mouse *mouse = SDL_GetMouse();
#ifdef DEBUG_XEVENTS
printf("window %p: EnterNotify! (%d,%d,%d)\n", data,
xevent.xcrossing.x,
@ -648,7 +649,10 @@ X11_DispatchEvent(_THIS)
#endif
SDL_SetMouseFocus(data->window);
if (!SDL_GetMouse()->relative_mode) {
mouse->last_x = xevent.xcrossing.x;
mouse->last_y = xevent.xcrossing.y;
if (!mouse->relative_mode) {
SDL_SendMouseMotion(data->window, 0, 0, xevent.xcrossing.x, xevent.xcrossing.y);
}
}