diff --git a/libs/widgets/ardour_icon.cc b/libs/widgets/ardour_icon.cc index a82f2ac06d..f18d482e40 100644 --- a/libs/widgets/ardour_icon.cc +++ b/libs/widgets/ardour_icon.cc @@ -20,6 +20,8 @@ #include #include // M_PI +#include "gtkmm/layout.h" + #include "gtkmm2ext/colors.h" #include "gtkmm2ext/rgb_macros.h" #include "widgets/ardour_icon.h" @@ -2072,7 +2074,12 @@ ArdourWidgets::ArdourIcon::expose (GdkEventExpose* ev, Gtk::Widget* w, const enu bool ArdourWidgets::ArdourIcon::expose_with_text (GdkEventExpose* ev, Gtk::Widget* w, const enum ArdourIcon::Icon icon, std::string const& caption) { - Glib::RefPtr win (w->get_window ()); + Glib::RefPtr win; + if (Gtk::Layout* l = dynamic_cast (w)) { + win = l->get_bin_window (); + } else { + win = w->get_window (); + } cairo_t* cr = gdk_cairo_create (win->gobj ()); gdk_cairo_rectangle (cr, &ev->area); cairo_clip (cr);