diff options
author | Adam Jackson <ajax@redhat.com> | 2014-10-08 17:20:33 +0200 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2014-10-23 14:35:49 -0700 |
commit | 462bf87c4d1c2211dd49a5ce62d01ff84ff33970 (patch) | |
tree | 397fba28721adaf3a3c4469a589d59072516bffb /xfixes | |
parent | 3f4edd2e3ff84c38df563b09c2e8c32404db38f7 (diff) |
render: Always store client clip as a region
This does have one semantic change. FixesCreateRegionFromPicture used to
throw BadImplementation if you tried to create a region from a picture
with no client clip. I changed that to BadMatch here since that more
honestly describes what's going on.
Signed-off-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'xfixes')
-rw-r--r-- | xfixes/region.c | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/xfixes/region.c b/xfixes/region.c index f9de52542..4cfeee1a1 100644 --- a/xfixes/region.c +++ b/xfixes/region.c @@ -272,20 +272,12 @@ ProcXFixesCreateRegionFromPicture(ClientPtr client) if (!pPicture->pDrawable) return RenderErrBase + BadPicture; - switch (pPicture->clientClipType) { - case CT_PIXMAP: - pRegion = BitmapToRegion(pPicture->pDrawable->pScreen, - (PixmapPtr) pPicture->clientClip); - if (!pRegion) - return BadAlloc; - break; - case CT_REGION: + if (pPicture->clientClip) { pRegion = XFixesRegionCopy((RegionPtr) pPicture->clientClip); if (!pRegion) return BadAlloc; - break; - default: - return BadImplementation; /* assume sane server bits */ + } else { + return BadMatch; } if (!AddResource(stuff->region, RegionResType, (void *) pRegion)) |