diff --git a/gtk2_ardour/ardour_button.cc b/gtk2_ardour/ardour_button.cc index 538ab3a442..9ed7b98254 100644 --- a/gtk2_ardour/ardour_button.cc +++ b/gtk2_ardour/ardour_button.cc @@ -345,6 +345,7 @@ ArdourButton::set_colors () if (edge_pattern) { cairo_pattern_destroy (edge_pattern); + edge_pattern = 0; } if (_elements & Edge) { @@ -369,6 +370,7 @@ ArdourButton::set_colors () if (fill_pattern) { cairo_pattern_destroy (fill_pattern); + fill_pattern = 0; } if (_elements & Body) { @@ -722,3 +724,10 @@ ArdourButton::set_rounded_corner_mask (int mask) _corner_mask = mask; queue_draw (); } + +void +ArdourButton::set_elements (Element e) +{ + _elements = e; + set_colors (); +} diff --git a/gtk2_ardour/ardour_button.h b/gtk2_ardour/ardour_button.h index 94f75fb5da..574e8b5a41 100644 --- a/gtk2_ardour/ardour_button.h +++ b/gtk2_ardour/ardour_button.h @@ -60,7 +60,8 @@ class ArdourButton : public CairoWidget , public Gtkmm2ext::Activatable void set_visual_state (Gtkmm2ext::VisualState); Element elements() const { return _elements; } - + void set_elements (Element); + void set_corner_radius (float); void set_rounded_corner_mask (int); void set_diameter (float); diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index fb29f14c31..fbec7212ea 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -221,6 +221,9 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[]) original_big_clock_height = -1; original_big_clock_font_size = 0; + roll_button.set_elements (ArdourButton::Element (ArdourButton::Body|ArdourButton::Text)); + play_selection_button.set_elements (ArdourButton::Element (ArdourButton::Body|ArdourButton::Text)); + roll_button.set_controllable (roll_controllable); stop_button.set_controllable (stop_controllable); goto_start_button.set_controllable (goto_start_controllable); diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index e23b439fc3..296a98de3c 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -2791,6 +2791,9 @@ Editor::setup_toolbar () smart_mode_joiner = manage (new ButtonJoiner ("mouse mode button", mouse_move_button, mouse_select_button)); smart_mode_joiner->set_related_action (smart_mode_action); + mouse_move_button.set_elements (ArdourButton::Element (ArdourButton::Body|ArdourButton::Text)); + mouse_select_button.set_elements (ArdourButton::Element (ArdourButton::Body|ArdourButton::Text)); + mouse_move_button.set_rounded_corner_mask (0x1); // upper left only mouse_select_button.set_rounded_corner_mask (0x2); // upper right only