diff options
Diffstat (limited to 'src/radeon_driver.c')
-rw-r--r-- | src/radeon_driver.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/radeon_driver.c b/src/radeon_driver.c index e77ea160..202a1904 100644 --- a/src/radeon_driver.c +++ b/src/radeon_driver.c @@ -5253,6 +5253,10 @@ void RADEONLeaveVT(int scrnIndex, int flags) { ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; RADEONInfoPtr info = RADEONPTR(pScrn); +#ifndef HAVE_FREE_SHADOW + xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn); + int o; +#endif xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG, "RADEONLeaveVT\n"); @@ -5285,6 +5289,23 @@ void RADEONLeaveVT(int scrnIndex, int flags) } #endif +#ifndef HAVE_FREE_SHADOW + for (o = 0; o < config->num_crtc; o++) { + xf86CrtcPtr crtc = config->crtc[o]; + + if (crtc->rotatedPixmap || crtc->rotatedData) { + crtc->funcs->shadow_destroy(crtc, crtc->rotatedPixmap, + crtc->rotatedData); + crtc->rotatedPixmap = NULL; + crtc->rotatedData = NULL; + } + } +#else + xf86RotateFreeShadow(pScrn); +#endif + + xf86_hide_cursors (pScrn); + RADEONRestore(pScrn); xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG, |