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])) {