--- a/hw/xfree86/common/xf86VidMode.c +++ b/hw/xfree86/common/xf86VidMode.c @@ -372,7 +372,12 @@ VidModeSwitchMode(int scrnIndex, pointer mode) retval = xf86SwitchMode(pScrn->pScreen, mode); /* we failed: restore it */ if (retval == FALSE) - pScrn->currentMode = pTmpMode; + pScrn->currentMode = pTmpMode; + + /* Make sure the whole screen is visible */ + xf86SetViewport (pScrn->pScreen, pScrn->pScreen->width, pScrn->pScreen->height); + xf86SetViewport (pScrn->pScreen, 0, 0); + return retval; }