diff --git a/libs/widgets/ardour_button.cc b/libs/widgets/ardour_button.cc index 2ccded83c0..4c1ac05a93 100644 --- a/libs/widgets/ardour_button.cc +++ b/libs/widgets/ardour_button.cc @@ -827,6 +827,16 @@ void ArdourButton::set_inactive_color (const uint32_t color) CairoWidget::set_dirty (); } +void ArdourButton::reset_fixed_colors () +{ + if (_fixed_colors_set == 0) { + return; + } + _fixed_colors_set = 0; + _update_colors = true; + CairoWidget::set_dirty (); +} + void ArdourButton::build_patterns () { @@ -1096,6 +1106,7 @@ ArdourButton::set_active_state (Gtkmm2ext::ActiveState s) bool changed = (_active_state != s); CairoWidget::set_active_state (s); if (changed) { + _update_colors = true; CairoWidget::set_dirty (); } } diff --git a/libs/widgets/widgets/ardour_button.h b/libs/widgets/widgets/ardour_button.h index a7fc4a6b2d..0cbd61bb0d 100644 --- a/libs/widgets/widgets/ardour_button.h +++ b/libs/widgets/widgets/ardour_button.h @@ -124,6 +124,7 @@ class LIBWIDGETS_API ArdourButton : public CairoWidget , public Gtkmm2ext::Activ void set_fixed_colors (const uint32_t active_color, const uint32_t inactive_color); void set_active_color (const uint32_t active_color); void set_inactive_color (const uint32_t inactive_color); + void reset_fixed_colors (); void set_fallthrough_to_parent(bool fall) { _fallthrough_to_parent = fall; }