the required precision by simply adding offset_x/y to the
relevant rendering API?
+ - Get rid of workaround for X server bug.
+
- pixman_image_set_indexed() should copy its argument, and X
should be ported over to use a pixman_image as the
representation of a Picture, rather than creating one on each
pRegion->extents.x1 = MAX (pRegion->extents.x1, 0);
pRegion->extents.y1 = MAX (pRegion->extents.y1, 0);
- pRegion->extents.x2 = MIN (pRegion->extents.x2, pDst->bits.width);
- pRegion->extents.y2 = MIN (pRegion->extents.y2, pDst->bits.height);
+
+ /* Some X servers rely on an old bug, where pixman would just believe the
+ * set clip_region and not clip against the destination geometry. So,
+ * since only X servers set "source clip", we only clip against destination
+ * geometry when that is set.
+ */
+ if (!pDst->common.clip_sources)
+ {
+ pRegion->extents.x2 = MIN (pRegion->extents.x2, pDst->bits.width);
+ pRegion->extents.y2 = MIN (pRegion->extents.y2, pDst->bits.height);
+ }
pRegion->data = 0;