diff --git a/hw/xnest/GC.c b/hw/xnest/GC.c index a574d6d5f..bed50e0d8 100644 --- a/hw/xnest/GC.c +++ b/hw/xnest/GC.c @@ -205,7 +205,13 @@ xnestChangeClip(GCPtr pGC, int type, void *pValue, int nRects) switch (type) { case CT_NONE: - XSetClipMask(xnestDisplay, xnestGC(pGC), XCB_PIXMAP_NONE); + { + uint32_t pixmap = XCB_PIXMAP_NONE; + xcb_change_gc(xnestUpstreamInfo.conn, + xnest_upstream_gc(pGC), + XCB_GC_CLIP_MASK, + &pixmap); + } pValue = NULL; break; @@ -239,8 +245,13 @@ xnestChangeClip(GCPtr pGC, int type, void *pValue, int nRects) break; case CT_PIXMAP: - XSetClipMask(xnestDisplay, xnestGC(pGC), - xnestPixmap((PixmapPtr) pValue)); + { + uint32_t val = xnestPixmap((PixmapPtr) pValue); + xcb_change_gc(xnestUpstreamInfo.conn, + xnest_upstream_gc(pGC), + XCB_GC_CLIP_MASK, + &val); + } /* * Need to change into region, so subsequent uses are with * current pixmap contents. @@ -318,7 +329,11 @@ xnestDestroyClip(GCPtr pGC) { if (pGC->clientClip) { RegionDestroy(pGC->clientClip); - XSetClipMask(xnestDisplay, xnestGC(pGC), XCB_PIXMAP_NONE); + uint32_t val = XCB_PIXMAP_NONE; + xcb_change_gc(xnestUpstreamInfo.conn, + xnest_upstream_gc(pGC), + XCB_GC_CLIP_MASK, + &val); pGC->clientClip = NULL; } }