glamor: Translate solid text background region after clipping
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 <michel.daenzer@amd.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
parent
32a9504c69
commit
e8e36755ab
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue