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