summaryrefslogtreecommitdiff
path: root/src/compositor/meta-surface-actor.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/compositor/meta-surface-actor.c')
-rw-r--r--src/compositor/meta-surface-actor.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/compositor/meta-surface-actor.c b/src/compositor/meta-surface-actor.c
index fcd94b86d..1bc58667a 100644
--- a/src/compositor/meta-surface-actor.c
+++ b/src/compositor/meta-surface-actor.c
@@ -412,10 +412,17 @@ meta_surface_actor_update_area (MetaSurfaceActor *self,
if (!cairo_region_is_empty (intersection))
{
- cairo_rectangle_int_t damage_rect;
+ int i, n_rectangles;
+
+ n_rectangles = cairo_region_num_rectangles (intersection);
+ for (i = 0; i < n_rectangles; i++)
+ {
+ cairo_rectangle_int_t rect;
+
+ cairo_region_get_rectangle (intersection, i, &rect);
+ clutter_actor_queue_redraw_with_clip (CLUTTER_ACTOR (self), &rect);
+ }
- cairo_region_get_extents (intersection, &damage_rect);
- clutter_actor_queue_redraw_with_clip (CLUTTER_ACTOR (self), &damage_rect);
repaint_scheduled = TRUE;
}