diff --git a/hw/xnest/GCOps.c b/hw/xnest/GCOps.c index 1a4d39009..32e4ffeb1 100644 --- a/hw/xnest/GCOps.c +++ b/hw/xnest/GCOps.c @@ -276,8 +276,15 @@ void xnestFillPolygon(DrawablePtr pDrawable, GCPtr pGC, int shape, int mode, int nPoints, DDXPointPtr pPoints) { - XFillPolygon(xnestDisplay, xnestDrawable(pDrawable), xnestGC(pGC), - (XPoint *) pPoints, nPoints, shape, mode); + /* xPoint and xcb_segment_t are defined in the same way, both matching + the protocol layout, so we can directly typecast them */ + xcb_fill_poly(xnestUpstreamInfo.conn, + xnestDrawable(pDrawable), + xnestUpstreamGC(pGC), + shape, + mode, + nPoints, + (xcb_point_t*)pPoints); } void