Note that this implementation only redraws a single (cairo_rectangle_t-defined) rect, and cannot provide sub-rects the way that a normal GDK/GTK expose-driven redraw can