wayland-surface: Don't require a MetaWindow to process damage...

and ClutterActor will clip to the actor bounds, anyway...
This commit is contained in:
Jasper St. Pierre 2013-11-25 17:40:21 -05:00
parent 7841042a85
commit f9a2c64460

View File

@ -63,39 +63,18 @@ static void
surface_process_damage (MetaWaylandSurface *surface, surface_process_damage (MetaWaylandSurface *surface,
cairo_region_t *region) cairo_region_t *region)
{ {
g_assert (surface->window); int i, n_rectangles = cairo_region_num_rectangles (region);
if (surface->buffer_ref.buffer) for (i = 0; i < n_rectangles; i++)
{ {
MetaRectangle rect; cairo_rectangle_int_t rect;
cairo_rectangle_int_t cairo_rect; cairo_region_get_rectangle (region, i, &rect);
meta_surface_actor_damage_area (surface->surface_actor,
meta_window_get_input_rect (surface->window, &rect); rect.x,
cairo_rect.x = 0; rect.y,
cairo_rect.y = 0; rect.width,
cairo_rect.width = rect.width; rect.height,
cairo_rect.height = rect.height; NULL);
cairo_region_intersect_rectangle (region, &cairo_rect);
if (surface->surface_actor)
{
int i, n_rectangles = cairo_region_num_rectangles (region);
for (i = 0; i < n_rectangles; i++)
{
cairo_rectangle_int_t rectangle;
cairo_region_get_rectangle (region, i, &rectangle);
meta_surface_actor_damage_area (surface->surface_actor,
rectangle.x,
rectangle.y,
rectangle.width,
rectangle.height,
NULL);
}
}
} }
} }