From caa9b2c25a087eb8d4c86031b171571bc7f0c6c5 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Thu, 9 Jan 2025 20:17:38 +0100 Subject: [PATCH] Allow to render icons on Gtk::Layout backgroud --- libs/widgets/ardour_icon.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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);