X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fardour_dropdown.cc;h=6c527f2d27b356721bbc7cd71ab5c51fa24ba5db;hb=f66f7ba136c8588e47b3381ab07353e85f4100bf;hp=5c0e25fd2459b280257df469fc92a7f5737cb6a0;hpb=e50e50c0f96b2a613209e48d99c2618bb52279f9;p=ardour.git diff --git a/gtk2_ardour/ardour_dropdown.cc b/gtk2_ardour/ardour_dropdown.cc index 5c0e25fd24..6c527f2d27 100644 --- a/gtk2_ardour/ardour_dropdown.cc +++ b/gtk2_ardour/ardour_dropdown.cc @@ -35,7 +35,7 @@ #include "ardour_dropdown.h" -#include "i18n.h" +#include "pbd/i18n.h" #define REFLECTION_HEIGHT 2 @@ -43,8 +43,6 @@ using namespace Gdk; using namespace Gtk; using namespace Glib; using namespace PBD; -using std::max; -using std::min; using namespace std; @@ -52,6 +50,9 @@ ArdourDropdown::ArdourDropdown (Element e) : _scrolling_disabled(false) { // signal_button_press_event().connect (sigc::mem_fun(*this, &ArdourDropdown::on_mouse_pressed)); + _menu.signal_size_request().connect (sigc::mem_fun(*this, &ArdourDropdown::menu_size_request)); + + _menu.set_reserve_toggle_size(false); add_elements(e); add_elements(ArdourButton::Menu); @@ -61,11 +62,16 @@ ArdourDropdown::~ArdourDropdown () { } +void +ArdourDropdown::menu_size_request(Requisition *req) { + req->width = max(req->width, get_allocation().get_width()); +} + bool ArdourDropdown::on_button_press_event (GdkEventButton* ev) { if (ev->type == GDK_BUTTON_PRESS) { - _menu.popup (1, gtk_get_current_event_time()); + Gtkmm2ext::anchored_menu_popup(&_menu, this, get_text(), 1, ev->time); } return true; }