summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/gtkmm2ext/cairo_widget.cc22
1 files changed, 14 insertions, 8 deletions
diff --git a/libs/gtkmm2ext/cairo_widget.cc b/libs/gtkmm2ext/cairo_widget.cc
index 0f34a3ffdb..3b4da2f3c9 100644
--- a/libs/gtkmm2ext/cairo_widget.cc
+++ b/libs/gtkmm2ext/cairo_widget.cc
@@ -183,15 +183,21 @@ CairoWidget::on_expose_event (GdkEventExpose *ev)
#endif
cr->rectangle (ev->area.x, ev->area.y, ev->area.width, ev->area.height);
- cr->clip_preserve ();
- /* paint expose area the color of the parent window bg
- */
-
- Gdk::Color bg (get_parent_bg());
-
- cr->set_source_rgb (bg.get_red_p(), bg.get_green_p(), bg.get_blue_p());
- cr->fill ();
+ if (_need_bg) {
+ cr->clip_preserve ();
+
+ /* paint expose area the color of the parent window bg
+ */
+
+ Gdk::Color bg (get_parent_bg());
+
+ cr->set_source_rgb (bg.get_red_p(), bg.get_green_p(), bg.get_blue_p());
+ cr->fill ();
+ } else {
+ std::cerr << get_name() << " skipped bg fill\n";
+ cr->clip ();
+ }
cairo_rectangle_t expose_area;
expose_area.x = ev->area.x;