On Thu, 31 Mar 2005, Tim Waugh wrote: >> I've been able to reproduce this problem now. For me, it only happens in >> the GNOME environment, not in KDE. Xvnc gives error messages like:
>> if ((xDst < 0) || (yDst < 0)) >> return; > > Well, that removes the 'striping' effect, but instead just large > regions don't get repainted now. :-/ I discovered that myself a few minutes ago :) It seems to help to call the original function, even though xDst is negative. Like this: void vncHooksComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst, INT16 xSrc, INT16 ySrc, INT16 xMask, INT16 yMask, INT16 xDst, INT16 yDst, CARD16 width, CARD16 height) { ScreenPtr pScreen = pDst->pDrawable->pScreen; vncHooksScreenPtr vncHooksScreen = ((vncHooksScreenPtr)pScreen->devPrivates[vncHooksScreenIndex].ptr); BoxRec box; PictureScreenPtr ps = GetPictureScreen(pScreen); if ((xDst >= 0) && (yDst >= 0)) { box.x1 = pDst->pDrawable->x + xDst; box.y1 = pDst->pDrawable->y + yDst; box.x2 = box.x1 + width; box.y2 = box.y1 + height; RegionHelper changed(pScreen, &box, 0); vncHooksScreen->desktop->add_changed(changed.reg); } ps->Composite = vncHooksScreen->Composite; (*ps->Composite)(op, pSrc, pMask, pDst, xSrc, ySrc, xMask, yMask, xDst, yDst, width, height); ps->Composite = vncHooksComposite; } -- Peter Estrand Chief Developer Cendio www.thinlinc.com Teknikringen 3 www.cendio.se 583 30 Linkvping Phone: +46-13-21 46 00 _______________________________________________ VNC-List mailing list VNC-List@realvnc.com To remove yourself from the list visit: http://www.realvnc.com/mailman/listinfo/vnc-list