summaryrefslogtreecommitdiff
path: root/src/sna
diff options
context:
space:
mode:
Diffstat (limited to 'src/sna')
-rw-r--r--src/sna/sna_composite.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/sna/sna_composite.c b/src/sna/sna_composite.c
index e5031c0d..d2817762 100644
--- a/src/sna/sna_composite.c
+++ b/src/sna/sna_composite.c
@@ -487,9 +487,19 @@ sna_composite(CARD8 op,
get_drawable_dx(dst->pDrawable),
get_drawable_dy(dst->pDrawable)));
- if (op <= PictOpSrc)
+ if (op <= PictOpSrc) {
+ int16_t x, y;
+
+ get_drawable_deltas(dst->pDrawable, pixmap, &x, &y);
+ if (x|y)
+ pixman_region_translate(&region, x, y);
+
sna_damage_subtract(&priv->cpu_damage, &region);
+ if (x|y)
+ pixman_region_translate(&region, -x, -y);
+ }
+
memset(&tmp, 0, sizeof(tmp));
if (!sna->render.composite(sna,
op, src, mask, dst,