- {
- /* scope for image_context */
- Cairo::RefPtr<Cairo::Context> image_context = Cairo::Context::create (canvas_image);
-
- /* clear expose area to transparent */
-
- image_context->save ();
- image_context->rectangle (ev->area.x, ev->area.y, ev->area.width, ev->area.height);
- image_context->clip ();
- image_context->set_operator (Cairo::OPERATOR_CLEAR);
- image_context->paint ();
- image_context->restore ();
-
- /* render into image surface */
-
- render (Rect (ev->area.x, ev->area.y, ev->area.x + ev->area.width, ev->area.y + ev->area.height), image_context);
-
- /* image surface is flushed when image_context goes out of scope */
- }
+ /* draw background color */
+
+ draw_context->rectangle (ev->area.x, ev->area.y, ev->area.width, ev->area.height);
+ draw_context->clip_preserve ();
+ set_source_rgba (draw_context, _bg_color);
+ draw_context->fill ();
+
+ /* render canvas */
+
+ render (Rect (ev->area.x, ev->area.y, ev->area.x + ev->area.width, ev->area.y + ev->area.height), draw_context);