I'm also experiencing this problem, ever since the last round of Xorg updates (on 23rd of october according to my dpkg.log).
I wrote a small test program that exposes this behaviour. One thing to note is that the problem only occurs if the program in question is running at the native screen resolution (1680x1050 in my case). So for example 1024x768/fullscreen -> 1024x768/window -> 1024x768/fullscreen works here, but 1680x1050/fullscreen -> 1680x1050/window -> 1680x1050/fullscreen does not. cheers, Christian
#include <stdio.h> #include <SDL.h> /* Compile: gcc -o fstest fstest.c $(sdl-config --cflags --libs) Run: fstest <width> <height> */ int main( int argc, char** argv ) { if( argc != 3 ) { fprintf( stderr, "Usage: fstest <width> <height>\n" ); return 1; } int width = atoi( argv[1] ); int height = atoi( argv[2] ); SDL_Init( SDL_INIT_VIDEO ); atexit( SDL_Quit ); SDL_Surface* screen = SDL_SetVideoMode( width, height, 0, SDL_FULLSCREEN ); SDL_Delay( 3000 ); SDL_WM_ToggleFullScreen( screen ); SDL_Delay( 3000 ); SDL_WM_ToggleFullScreen( screen ); SDL_Delay( 3000 ); return 0; }