File xf86-video-mga-g200se-swcursor.diff of Package xorg-x11-driver-video
--- src/mga_driver.c.orig 2008-10-02 11:03:23.000000000 +0200
+++ src/mga_driver.c 2008-10-02 11:35:24.000000000 +0200
@@ -1840,7 +1840,16 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
if (!xf86IsPrimInitDone(pScrn->entityList[0])) { /* Is it the first initialisation? */
/* First CRTC */
pMga->SecondCrtc = FALSE;
- pMga->HWCursor = TRUE;
+ /*
+ * Disable HWCursor to make the cursor visible on
+ * remote video redirection (bnc #431311)
+ */
+ if ((pMga->Chipset == PCI_CHIP_MGAG200_SE_A_PCI) ||
+ (pMga->Chipset == PCI_CHIP_MGAG200_SE_B_PCI)) {
+ pMga->HWCursor = FALSE;
+ } else {
+ pMga->HWCursor = TRUE;
+ }
pMgaEnt->pScrn_1 = pScrn;
} else if (pMga->DualHeadEnabled) {
/* Second CRTC */
@@ -1871,7 +1880,16 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
#endif
} else { /* single-head mode */
pMga->SecondCrtc = FALSE;
- pMga->HWCursor = TRUE;
+ /*
+ * Disable HWCursor to make the cursor visible on
+ * remote video redirection (bnc #431311)
+ */
+ if ((pMga->Chipset == PCI_CHIP_MGAG200_SE_A_PCI) ||
+ (pMga->Chipset == PCI_CHIP_MGAG200_SE_B_PCI)) {
+ pMga->HWCursor = FALSE;
+ } else {
+ pMga->HWCursor = TRUE;
+ }
#ifdef XF86DRI
pMga->GetQuiescence = MGAGetQuiescence;
#endif