Blob Blame History Raw
diff -up alleggl/src/x.c~ alleggl/src/x.c
--- alleggl/src/x.c~	2007-09-18 22:36:28.000000000 +0200
+++ alleggl/src/x.c	2009-09-10 22:09:01.000000000 +0200
@@ -1005,6 +1005,14 @@ old_choose_visual:
 #ifdef ALLEGROGL_HAVE_XF86VIDMODE
 	if (fullscreen) {
 		setattr.override_redirect = True;
+
+		/* Warp the pointer to the upper left corner, this is
+		   necessary as the: XF86VidModeSetViewPort() call below does
+		   not seem to do anything on newer Xorg servers, instead the
+		   viewport is always be centered at the last mouse position */
+		XWarpPointer(_xwin.display, None,
+			     XDefaultRootWindow(_xwin.display),
+			     0, 0, 0, 0, 0, 0);
 		if (!XF86VidModeSwitchToMode(_xwin.display, _xwin.screen,
 		                             _xwin.modesinfo[bestmode])) {