Canvas::queue_draw_item_area (Item* item, Rect area)
{
ArdourCanvas::Rect canvas_area = item->item_to_canvas (area);
- // cerr << "CANVAS " << this << " for " << item->whatami() << ' ' << item->name << " invalidate " << area << " TRANSLATE AS " << canvas_area << " window = " << canvas_to_window (canvas_area) << std::endl;
+ // cerr << "CANVAS " << this << " for " << item << ' ' << item->whatami() << ' ' << item->name << " invalidate " << area << " TRANSLATE AS " << canvas_area << " window = " << canvas_to_window (canvas_area) << std::endl;
request_redraw (canvas_area);
}
GtkCanvas::on_expose_event (GdkEventExpose* ev)
{
Cairo::RefPtr<Cairo::Context> cairo_context = get_window()->create_cairo_context ();
-
- /* break into regions */
-
- GdkRectangle *rects;
- gint n_rects;
-
- gdk_region_get_rectangles (ev->region, &rects, &n_rects);
-
- for (gint i = 0; i < n_rects; ++i) {
- Rect area (rects[i].x, rects[i].y, rects[i].x + rects[i].width, rects[i].y + rects[i].height);
- render (area, cairo_context);
- }
-
- g_free (rects);
-
+ render (Rect (ev->area.x, ev->area.y, ev->area.x + ev->area.width, ev->area.y + ev->area.height), cairo_context);
return true;
}