Patch for SDL_VIDEO_CENTERED & OpenGL bug

Stephen Anthony to SDL

Using SDL_VIDEO_CENTERED in Linux OpenGL mode issue an unwanted
ConfigureNotify event *after* the SDL screen has already been resized.
When going from a smaller to a larger screen, this event causes the mouse
tracking to be clamped at the *smaller* screen size, even though that
screen no longer exists.

The fix is to not issue a ConfigureNotify when the window is moved because
of the SDL_VIDEO_CENTERED environment variable.  The included patch fixes
this bug.  It seems the hints must be set before the window is moved.

--HG--
branch : SDL-1.2
This commit is contained in:
Sam Lantinga 2011-02-24 17:42:45 -08:00
parent ae48cd353d
commit e7770b13f0

View file

@ -786,6 +786,11 @@ static void X11_SetSizeHints(_THIS, int w, int h, Uint32 flags)
/* Center it, if desired */
if ( X11_WindowPosition(this, &hints->x, &hints->y, w, h) ) {
hints->flags |= USPosition;
/* Hints must be set before moving the window, otherwise an
unwanted ConfigureNotify event will be issued */
XSetWMNormalHints(SDL_Display, WMwindow, hints);
XMoveWindow(SDL_Display, WMwindow, hints->x, hints->y);
/* Flush the resize event so we don't catch it later */