134b1bc
diff -up ClanLib-1.0.0/Sources/GL/GLX/display_window_opengl.cpp~ ClanLib-1.0.0/Sources/GL/GLX/display_window_opengl.cpp
134b1bc
--- ClanLib-1.0.0/Sources/GL/GLX/display_window_opengl.cpp~	2008-11-13 17:09:02.000000000 +0100
134b1bc
+++ ClanLib-1.0.0/Sources/GL/GLX/display_window_opengl.cpp	2009-09-10 22:58:10.000000000 +0200
134b1bc
@@ -612,6 +612,13 @@ void CL_DisplayWindow_OpenGL::set_resolu
134b1bc
 				XF86VidModeGetViewPort(disp, vi->screen,
134b1bc
 					&old_x, &old_y);
134b1bc
 			}
134b1bc
+			/* Warp the pointer to the upper left corner, this is
134b1bc
+			   necessary as the: XF86VidModeSetViewPort() call
134b1bc
+			   below does not seem to do anything on newer Xorg
134b1bc
+			   servers, instead the viewport appears to be always
134b1bc
+			   centered at the last mouse position */
134b1bc
+			XWarpPointer(disp, None, XDefaultRootWindow(disp),
134b1bc
+				     0, 0, 0, 0, 0, 0);
134b1bc
 			XF86VidModeSwitchToMode(disp, vi->screen,
134b1bc
 				modes[i]);
134b1bc
 		}