diff --git a/libs/widgets/ardour_fader.cc b/libs/widgets/ardour_fader.cc index 9c7ef7220f..c0d2fa19e6 100644 --- a/libs/widgets/ardour_fader.cc +++ b/libs/widgets/ardour_fader.cc @@ -211,12 +211,18 @@ ArdourFader::create_patterns () Gdk::Color ArdourFader::bg_color (Gtk::StateType s) { + if (have_explicit_bg) { + return gdk_color_from_rgba (explicit_bg); + } return get_style()->get_bg (s); } Gdk::Color ArdourFader::fg_color (Gtk::StateType s) { + if (have_explicit_fg) { + return gdk_color_from_rgba (explicit_fg); + } return get_style()->get_fg (s); } @@ -770,6 +776,7 @@ ArdourFader::set_bg (Gtkmm2ext::Color c) { explicit_bg = c; have_explicit_bg = true; + queue_draw (); } void @@ -777,4 +784,23 @@ ArdourFader::set_fg (Gtkmm2ext::Color c) { explicit_fg = c; have_explicit_fg = true; + queue_draw (); +} + +void +ArdourFader::unset_bg () +{ + if (have_explicit_bg) { + have_explicit_bg = false; + queue_draw (); + } +} + +void +ArdourFader::unset_fg () +{ + if (have_explicit_fg) { + have_explicit_fg = false; + queue_draw (); + } } diff --git a/libs/widgets/widgets/ardour_fader.h b/libs/widgets/widgets/ardour_fader.h index c051d63b6c..5355b4e3c5 100644 --- a/libs/widgets/widgets/ardour_fader.h +++ b/libs/widgets/widgets/ardour_fader.h @@ -57,6 +57,8 @@ public: void set_bg (Gtkmm2ext::Color); void set_fg (Gtkmm2ext::Color); + void unset_bg (); + void unset_fg (); protected: void on_size_request (GtkRequisition*);