From 0fedfab593a8d5e3daa86ad30769bf7433621272 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 7 Nov 2014 16:50:21 +0100 Subject: [PATCH] tentative fix for canvas background/image surface --- libs/canvas/canvas.cc | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/libs/canvas/canvas.cc b/libs/canvas/canvas.cc index 9d1d9f3ad9..85c87a39f0 100644 --- a/libs/canvas/canvas.cc +++ b/libs/canvas/canvas.cc @@ -748,13 +748,18 @@ GtkCanvas::on_expose_event (GdkEventExpose* ev) /* scope for image_context */ Cairo::RefPtr image_context = Cairo::Context::create (canvas_image); - /* clear expose area to transparent */ + /* clear expose area */ 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->set_operator (Cairo::OPERATOR_SOURCE); + // TODO get canvas backround see CairoWidget::get_parent_bg + // also subscribe to parent's signal_style_changed() + // ..until new canvas color-theme API is in place, hardcode some values. + image_context->set_source_rgba (84./255., 85./255., 93./255., 1.0); + image_context->rectangle (ev->area.x, ev->area.y, ev->area.width, ev->area.height); + image_context->fill (); image_context->restore (); /* render into image surface */