xf86-video-intel: uxa/uxa-render.c

Chris Wilson ickle at kemper.freedesktop.org
Tue May 25 01:51:33 PDT 2010


 uxa/uxa-render.c |   15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

New commits:
commit b645ec83e0d86f2247b8338ceab60b9502516e70
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue May 25 09:49:20 2010 +0100

    uxa: Apply the drawable offset to the solid rects
    
    Fixes:
    
      Bug 28120 - Tint2's tooltip borders end up at 0,0 and do not disappear
      https://bugs.freedesktop.org/show_bug.cgi?id=28120
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/uxa/uxa-render.c b/uxa/uxa-render.c
index ec59871..41daf06 100644
--- a/uxa/uxa-render.c
+++ b/uxa/uxa-render.c
@@ -899,7 +899,8 @@ uxa_acquire_mask(ScreenPtr screen,
 static Bool
 _pixman_region_init_rectangles(pixman_region16_t *region,
 			       int num_rects,
-			       xRectangle *rects)
+			       xRectangle *rects,
+			       int tx, int ty)
 {
 	pixman_box16_t stack_boxes[64], *boxes = stack_boxes;
 	pixman_bool_t ret;
@@ -912,10 +913,10 @@ _pixman_region_init_rectangles(pixman_region16_t *region,
 	}
 
 	for (i = 0; i < num_rects; i++) {
-		boxes[i].x1 = rects[i].x;
-		boxes[i].y1 = rects[i].y;
-		boxes[i].x2 = rects[i].x + rects[i].width;
-		boxes[i].y2 = rects[i].y + rects[i].height;
+		boxes[i].x1 = rects[i].x + tx;
+		boxes[i].y1 = rects[i].y + ty;
+		boxes[i].x2 = rects[i].x + tx + rects[i].width;
+		boxes[i].y2 = rects[i].y + ty + rects[i].height;
 	}
 
 	ret = pixman_region_init_rects(region, boxes, num_rects);
@@ -952,7 +953,9 @@ uxa_solid_rects (CARD8		op,
 	if (!dst_pixmap)
 		goto fallback;
 
-	if (!_pixman_region_init_rectangles(&region, num_rects, rects))
+	if (!_pixman_region_init_rectangles(&region,
+					    num_rects, rects,
+					    dst->pDrawable->x, dst->pDrawable->y))
 		goto fallback;
 
 	if (!pixman_region_intersect(&region, &region, dst->pCompositeClip)) {


More information about the xorg-commit mailing list