From e8e36755abb17872d669b88d33ca9adc511029a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Date: Fri, 1 Jul 2016 12:34:20 +0900 Subject: [PATCH] glamor: Translate solid text background region after clipping MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes incorrect clipping for redirected windows which don't happen to be located at the top left corner of the screen. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96742 Signed-off-by: Michel Dänzer Reviewed-by: Adam Jackson --- glamor/glamor_text.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/glamor/glamor_text.c b/glamor/glamor_text.c index c305305f4..cf165cad8 100644 --- a/glamor/glamor_text.c +++ b/glamor/glamor_text.c @@ -446,16 +446,17 @@ glamor_image_text(DrawablePtr drawable, GCPtr gc, glamor_get_drawable_deltas(drawable, pixmap, &off_x, &off_y); if (width >= 0) { - box.x1 = off_x + drawable->x + x; - box.x2 = off_x + drawable->x + x + width; + box.x1 = drawable->x + x; + box.x2 = drawable->x + x + width; } else { - box.x1 = off_x + drawable->x + x + width; - box.x2 = off_x + drawable->x + x; + box.x1 = drawable->x + x + width; + box.x2 = drawable->x + x; } - box.y1 = off_y + drawable->y + y - gc->font->info.fontAscent; - box.y2 = off_y + drawable->y + y + gc->font->info.fontDescent; + box.y1 = drawable->y + y - gc->font->info.fontAscent; + box.y2 = drawable->y + y + gc->font->info.fontDescent; RegionInit(®ion, &box, 1); RegionIntersect(®ion, ®ion, gc->pCompositeClip); + RegionTranslate(®ion, off_x, off_y); glamor_solid_boxes(pixmap, RegionRects(®ion), RegionNumRects(®ion), gc->bgPixel); RegionUninit(®ion); }