Skip to content

Commit

Permalink
Patch for SDL_VIDEO_CENTERED & OpenGL bug
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
slouken committed Feb 25, 2011
1 parent 3bbf8b3 commit 7bfdce4
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions src/video/x11/SDL_x11video.c
Expand Up @@ -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 */
Expand Down

0 comments on commit 7bfdce4

Please sign in to comment.