summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-05-26 10:16:36 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2010-05-26 10:21:03 +0100
commit03bbb4c896ef3cd275312b413a2c85d9f499c032 (patch)
tree238b10eb099253f5ca0a51bc644a8124fcb694bb
parentb9ada52a3081f54e0ed094ac31188bb240866f81 (diff)
uxa: Perform manual damage for CompositeRects
[xserver-1.8] The damage layer doesn't wrap CompositeRects, so we need to manually append the damaged region ourselves. This works for miCompsiteRects since that translates the call into multiple invocations of either PolyFillRectangle or Composite, which themselves cause damage. 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@chris-wilson.co.uk>
-rw-r--r--uxa/uxa-render.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/uxa/uxa-render.c b/uxa/uxa-render.c
index f1c34e7b..caa36ee1 100644
--- a/uxa/uxa-render.c
+++ b/uxa/uxa-render.c
@@ -963,6 +963,11 @@ uxa_solid_rects (CARD8 op,
return;
}
+ /* XXX xserver-1.8: CompositeRects is not tracked by Damage, so we must
+ * manually append the damaged regions ourselves.
+ */
+ DamageRegionAppend(dst->pDrawable, &region);
+
pixman_region_translate(&region, dst_x, dst_y);
boxes = pixman_region_rectangles(&region, &num_boxes);
extents = pixman_region_extents (&region);