File xf86-video-mga-g200se-swcursor.diff of Package xf86-video-mga
Index: src/mga_driver.c
===================================================================
--- src/mga_driver.c.orig
+++ src/mga_driver.c
@@ -1648,7 +1648,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 */
@@ -1679,7 +1688,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 MGADRI
pMga->GetQuiescence = MGAGetQuiescence;
#endif