diff --git a/hw/xnest/GCOps.c b/hw/xnest/GCOps.c index d03838949..df338c04a 100644 --- a/hw/xnest/GCOps.c +++ b/hw/xnest/GCOps.c @@ -244,8 +244,13 @@ void xnestPolyRectangle(DrawablePtr pDrawable, GCPtr pGC, int nRectangles, xRectangle *pRectangles) { - XDrawRectangles(xnestDisplay, xnestDrawable(pDrawable), xnestGC(pGC), - (XRectangle *) pRectangles, nRectangles); + /* xRectangle and xcb_rectangle_t are defined in the same way, both matching + the protocol layout, so we can directly typecast them */ + xcb_poly_rectangle(xnestUpstreamInfo.conn, + xnestDrawable(pDrawable), + xnest_upstream_gc(pGC), + nRectangles, + (xcb_rectangle_t*)pRectangles); } void