From: Paul Davis Date: Thu, 23 Jul 2015 21:38:04 +0000 (-0400) Subject: if _need_bg is set to false in a CairoWidget, then don't actually draw the background X-Git-Tag: 5.0-pre0~1585 X-Git-Url: https://main.carlh.net/gitweb/?a=commitdiff_plain;h=a48684c692a0d8e567bf8ca80f746fb8f05fede1;p=ardour.git if _need_bg is set to false in a CairoWidget, then don't actually draw the background --- 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;