From: Adam Tkac Date: Tue, 20 Jul 2010 09:32:42 +0000 (+0000) Subject: [Development] Fetch root window pointer directly from pScreen if possible. X-Git-Tag: v1.0.90~223 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=02fd9a6cda8d2f9686b691a16cc7ea4a0ef161b5;p=tigervnc.git [Development] Fetch root window pointer directly from pScreen if possible. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4090 3789f03b-4d11-0410-bbf8-ca57d06f2519 --- diff --git a/unix/xserver/hw/vnc/XserverDesktop.cc b/unix/xserver/hw/vnc/XserverDesktop.cc index 59710775..ba7ccf77 100644 --- a/unix/xserver/hw/vnc/XserverDesktop.cc +++ b/unix/xserver/hw/vnc/XserverDesktop.cc @@ -765,8 +765,14 @@ void XserverDesktop::grabRegion(const rfb::Region& region) region.get_rects(&rects); for (i = rects.begin(); i != rects.end(); i++) { for (int y = i->tl.y; y < i->br.y; y++) { - (*pScreen->GetImage) ((DrawablePtr)WindowTable[pScreen->myNum], - i->tl.x, y, i->width(), 1, + DrawablePtr pDrawable; +#if XORG < 19 + pDrawable = (DrawablePtr) WindowTable[pScreen->myNum]; +#else + pDrawable = (DrawablePtr) pScreen->root; +#endif + + (*pScreen->GetImage) (pDrawable, i->tl.x, y, i->width(), 1, ZPixmap, (unsigned long)~0L, ((char*)data + y * bytesPerRow + i->tl.x * bytesPerPixel)); diff --git a/unix/xserver/hw/vnc/xvnc.cc b/unix/xserver/hw/vnc/xvnc.cc index af35f253..a6f27b34 100644 --- a/unix/xserver/hw/vnc/xvnc.cc +++ b/unix/xserver/hw/vnc/xvnc.cc @@ -878,7 +878,11 @@ static Bool vncRandRGetInfo (ScreenPtr pScreen, Rotation *rotations) static void xf86SetRootClip (ScreenPtr pScreen, Bool enable) { +#if XORG < 19 WindowPtr pWin = WindowTable[pScreen->myNum]; +#else + WindowPtr pWin = pScreen->root; +#endif WindowPtr pChild; Bool WasViewable = (Bool)(pWin->viewable); Bool anyMarked = FALSE;