diff options
author | Keith Packard <keithp@keithp.com> | 2016-09-25 14:19:08 +0300 |
---|---|---|
committer | Adam Jackson <ajax@redhat.com> | 2016-09-28 15:25:07 -0400 |
commit | 6c6f09aac7f1d1367a042087b7681c7fdf1d1e0f (patch) | |
tree | 77e88249fd2d327116a2025a366baedecac9e9f4 /Xext | |
parent | 380c2ca25ec4dd330f938e382ff4af60bc253785 (diff) |
xace: Don't censor window borders
GetImage is allowed to return window border contents, so don't remove
that from the returned image.
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'Xext')
-rw-r--r-- | Xext/xace.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/Xext/xace.c b/Xext/xace.c index a3a83a20c..f8f8d139b 100644 --- a/Xext/xace.c +++ b/Xext/xace.c @@ -236,16 +236,15 @@ XaceCensorImage(ClientPtr client, BoxRec imageBox; int nRects; - imageBox.x1 = x; - imageBox.y1 = y; - imageBox.x2 = x + w; - imageBox.y2 = y + h; + imageBox.x1 = pDraw->x + x; + imageBox.y1 = pDraw->y + y; + imageBox.x2 = pDraw->x + x + w; + imageBox.y2 = pDraw->y + y + h; RegionInit(&imageRegion, &imageBox, 1); RegionNull(&censorRegion); /* censorRegion = imageRegion - visibleRegion */ RegionSubtract(&censorRegion, &imageRegion, pVisibleRegion); - RegionTranslate(&censorRegion, -x, -y); nRects = RegionNumRects(&censorRegion); if (nRects > 0) { /* we have something to censor */ GCPtr pScratchGC = NULL; @@ -265,8 +264,8 @@ XaceCensorImage(ClientPtr client, goto failSafe; } for (pBox = RegionRects(&censorRegion), i = 0; i < nRects; i++, pBox++) { - pRects[i].x = pBox->x1; - pRects[i].y = pBox->y1; + pRects[i].x = pBox->x1 - imageBox.x1; + pRects[i].y = pBox->y1 - imageBox.y1; pRects[i].width = pBox->x2 - pBox->x1; pRects[i].height = pBox->y2 - pBox->y1; } |