From b9e8b5940ba0505d35fceb93e4a09daba1c94ee7 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Tue, 20 Dec 2016 18:47:24 +0100 Subject: [PATCH] Fix Dropdown w/icon size and alignment --- gtk2_ardour/ardour_button.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gtk2_ardour/ardour_button.cc b/gtk2_ardour/ardour_button.cc index 5ebddc23cc..5522f01bcd 100644 --- a/gtk2_ardour/ardour_button.cc +++ b/gtk2_ardour/ardour_button.cc @@ -193,9 +193,13 @@ ArdourButton::set_text_internal () { void ArdourButton::set_text (const std::string& str, bool markup) { + if (!(_elements & Text)) { + return; + } if (_text == str && _markup == markup) { return; } + _text = str; _markup = markup; if (!is_realized()) { @@ -366,7 +370,12 @@ ArdourButton::render (cairo_t* cr, cairo_rectangle_t *) } else /* VectorIcons are exclusive to Pixbuf Icons */ if (_elements & VectorIcon) { - Gtkmm2ext::ArdourIcon::render (cr, _icon, get_width(), get_height(), active_state(), text_color); + int vw = get_width(); + int vh = get_height(); + if (_elements & Menu) { + vw -= _diameter + 4; + } + Gtkmm2ext::ArdourIcon::render (cr, _icon, vw, vh, active_state(), text_color); } const int text_margin = char_pixel_width(); @@ -1033,6 +1042,7 @@ ArdourButton::setup_led_rect () void ArdourButton::set_image (const RefPtr& img) { + _elements = (ArdourButton::Element) (_elements & ~ArdourButton::Text); _pixbuf = img; if (is_realized()) { queue_resize ();