diff --git a/gtk2_ardour/automation_line.cc b/gtk2_ardour/automation_line.cc index b706c43f55..f743c022bb 100644 --- a/gtk2_ardour/automation_line.cc +++ b/gtk2_ardour/automation_line.cc @@ -147,7 +147,11 @@ AutomationLine::set_sensitive (bool yn) { _sensitive = yn; - set_line_color (_line_color_name); + if (yn) { + set_line_color (_line_color_name); + } else { + set_line_color (UIConfiguration::instance().color ("nonexistent")); + } for (auto & cp : control_points) { if (yn) { @@ -308,6 +312,29 @@ AutomationLine::set_line_color (string const & color_name, string color_mod) Gtkmm2ext::SVAModifier mod = UIConfiguration::instance().modifier (color_mod.empty () ? "automation line fill" : color_mod); line->set_fill_color ((line->outline_color() & 0xffffff00) + (mod.a() * 255)); + line->set_fill (true); + + if (_control_points_inherit_color) { + for (auto & cp : control_points) { + cp->set_color (); + } + } +} + +void +AutomationLine::set_colors () +{ + set_line_color (_line_color_name); + for (auto & cp : control_points) { + cp->set_color (); + } +} + +void +AutomationLine::set_line_color (uint32_t color) +{ + line->set_outline_color (color); + line->set_fill (false); if (_control_points_inherit_color) { for (auto & cp : control_points) { @@ -1062,15 +1089,6 @@ AutomationLine::set_selected_points (PointSelection const & points) set_colors (); } -void -AutomationLine::set_colors () -{ - set_line_color (_line_color_name); - for (auto & cp : control_points) { - cp->set_color (); - } -} - void AutomationLine::list_changed () { diff --git a/gtk2_ardour/automation_line.h b/gtk2_ardour/automation_line.h index ef1f605679..6f574e288c 100644 --- a/gtk2_ardour/automation_line.h +++ b/gtk2_ardour/automation_line.h @@ -114,6 +114,7 @@ public: guint32 height() const { return _height; } void set_line_color (std::string const & color, std::string color_mode = std::string()); + void set_line_color (uint32_t color); uint32_t get_line_color() const; uint32_t get_line_fill_color() const; uint32_t get_line_selected_color() const;