Fixed bug 1058 - SDL: erroneously uses xrandr-style mode switching SDL-1.2
authorSam Lantinga <slouken@libsdl.org>
Fri, 30 Dec 2011 14:37:50 -0500
branchSDL-1.2
changeset 6131 804c6c62c55f
parent 6130 987c365cc7bf
child 6132 1d8211416a01
Fixed bug 1058 - SDL: erroneously uses xrandr-style mode switching Jan Engelhardt 2010-09-23 17:02:37 PDT Problem: SDL-1.2.14. When SDL switches to fullscreen 640x480 - for example, because the game is configured to run in such resolution - or back, it changes the desktop size too by means of xrandr or something along the lines of that. Actual results: Windows on my desktop are reordered, which is usually a result of the WM being forced to do so because the desktop size (virtualsize) changed. Resolution switching also takes significantly longer than it did before — this is another sign that it switches desktop size (too), not just resolution. First the screen goes black-with-backlight and after roughly 500ms, the TFT screen finally gets the new 640x480 mode signal (I use VGA), which is evidenced by the backlight going briefly off. Expected results: Previous behavior. In other worsd, leave desktop size as-is (and subsequently keep my windows where they are) and _only_ change the resolution. The old switching style is also way faster in that there is no black-with-backlight delay. Additional information: Overriding the system SDL 1.2.14 libraries and using LD_LIBRARY_PATH to point to SDL-1.2.13 libraries brings back the desired behavior. hg bisecting... The first bad revision is: changeset: 4313:8ec3036098df branch: SDL-1.2 user: Sam Lantinga <slouken@libsdl.org> date: Sat Oct 10 10:14:01 2009 +0000 summary: Adapted from Debian patch: 320_activate_xrandr_on_default.diff I am aware of the existence of the SDL_VIDEO_X11_XRANDR environment variable, but that only looks like a temporary workaround to me.
src/video/x11/SDL_x11modes.c
--- a/src/video/x11/SDL_x11modes.c	Fri Dec 30 14:14:45 2011 -0500
+++ b/src/video/x11/SDL_x11modes.c	Fri Dec 30 14:37:50 2011 -0500
@@ -421,16 +421,11 @@
         return 0;
     }
 
-    /* This used to default off, due to KDE window maximize problems */
-    /* Reactivated since I haven't encountered such problems with KDE, but if
-       one does encounter such problems he/she can just set
-       SDL_VIDEO_X11_XRANDR to 0
-       Closes Debian bug: #450689
-     */
-/*  if ( !env ) {
+    /* This defaults off now, due to KDE window maximize problems */
+    if ( !env ) {
         return 0;
     }
-*/
+
     if ( !SDL_X11_HAVE_XRANDR ) {
         return 0;
     }