summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/ardour_dropdown.cc8
-rw-r--r--gtk2_ardour/ardour_dropdown.h1
-rw-r--r--gtk2_ardour/generic_pluginui.cc4
-rw-r--r--libs/gtkmm2ext/gtkmm2ext/utils.h8
-rw-r--r--libs/gtkmm2ext/utils.cc18
5 files changed, 21 insertions, 18 deletions
diff --git a/gtk2_ardour/ardour_dropdown.cc b/gtk2_ardour/ardour_dropdown.cc
index 741db8c2ce..6c527f2d27 100644
--- a/gtk2_ardour/ardour_dropdown.cc
+++ b/gtk2_ardour/ardour_dropdown.cc
@@ -67,17 +67,11 @@ ArdourDropdown::menu_size_request(Requisition *req) {
req->width = max(req->width, get_allocation().get_width());
}
-void
-ArdourDropdown::position_menu(int& x, int& y, bool& push_in) {
- Gtkmm2ext::position_menu_anchored (&_menu, this, get_text(), x, y, push_in);
-}
-
bool
ArdourDropdown::on_button_press_event (GdkEventButton* ev)
{
if (ev->type == GDK_BUTTON_PRESS) {
- _menu.popup (sigc::mem_fun(this, &ArdourDropdown::position_menu),
- 1, ev->time);
+ Gtkmm2ext::anchored_menu_popup(&_menu, this, get_text(), 1, ev->time);
}
return true;
}
diff --git a/gtk2_ardour/ardour_dropdown.h b/gtk2_ardour/ardour_dropdown.h
index 5a710ec539..c50304046d 100644
--- a/gtk2_ardour/ardour_dropdown.h
+++ b/gtk2_ardour/ardour_dropdown.h
@@ -38,7 +38,6 @@ class ArdourDropdown : public ArdourButton
bool on_button_press_event (GdkEventButton*);
bool on_scroll_event (GdkEventScroll*);
- void position_menu(int&, int&, bool&);
void menu_size_request(Gtk::Requisition*);
void clear_items ();
diff --git a/gtk2_ardour/generic_pluginui.cc b/gtk2_ardour/generic_pluginui.cc
index 7832dcfbfe..d1accfdd12 100644
--- a/gtk2_ardour/generic_pluginui.cc
+++ b/gtk2_ardour/generic_pluginui.cc
@@ -955,9 +955,7 @@ GenericPluginUI::astate_clicked (ControlUI* cui)
items.push_back (MenuElem (_("Touch"),
sigc::bind (sigc::mem_fun(*this, &GenericPluginUI::set_automation_state), (AutoState) Touch, cui)));
- automation_menu->popup (
- boost::bind (&Gtkmm2ext::position_menu_anchored, automation_menu, &cui->automate_button, "", _1, _2, _3),
- 1, gtk_get_current_event_time());
+ anchored_menu_popup(automation_menu, &cui->automate_button, "", 1, gtk_get_current_event_time());
}
void
diff --git a/libs/gtkmm2ext/gtkmm2ext/utils.h b/libs/gtkmm2ext/gtkmm2ext/utils.h
index bd09e29912..188da0862d 100644
--- a/libs/gtkmm2ext/gtkmm2ext/utils.h
+++ b/libs/gtkmm2ext/gtkmm2ext/utils.h
@@ -97,10 +97,10 @@ namespace Gtkmm2ext {
int clip_height,
Gdk::Color fg);
- LIBGTKMM2EXT_API void position_menu_anchored (const Gtk::Menu* const menu,
- Gtk::Widget* const anchor,
- const std::string& selected,
- int& x, int& y, bool& push_in);
+ LIBGTKMM2EXT_API void anchored_menu_popup (Gtk::Menu* const menu,
+ Gtk::Widget* const anchor,
+ const std::string& selected,
+ guint button, guint32 time);
LIBGTKMM2EXT_API void set_popdown_strings (Gtk::ComboBoxText&,
const std::vector<std::string>&);
diff --git a/libs/gtkmm2ext/utils.cc b/libs/gtkmm2ext/utils.cc
index 2b3a29fc0d..4ba85e2f25 100644
--- a/libs/gtkmm2ext/utils.cc
+++ b/libs/gtkmm2ext/utils.cc
@@ -310,10 +310,10 @@ Gtkmm2ext::pixbuf_from_string(const string& name, const Pango::FontDescription&
}
void
-Gtkmm2ext::position_menu_anchored (const Gtk::Menu* const menu,
+_position_menu_anchored (int& x, int& y, bool& push_in,
+ const Gtk::Menu* const menu,
Gtk::Widget* const anchor,
- const std::string& selected,
- int& x, int& y, bool& push_in) {
+ const std::string& selected) {
using namespace Gdk;
using namespace Gtk;
using namespace Gtk::Menu_Helpers;
@@ -417,6 +417,18 @@ Gtkmm2ext::position_menu_anchored (const Gtk::Menu* const menu,
}
void
+Gtkmm2ext::anchored_menu_popup (Gtk::Menu* const menu,
+ Gtk::Widget* const anchor,
+ const std::string& selected,
+ guint button, guint32 time) {
+ menu->popup(
+ sigc::bind (sigc::ptr_fun(&_position_menu_anchored),
+ menu, anchor, selected),
+ button,
+ time);
+}
+
+void
Gtkmm2ext::set_popdown_strings (Gtk::ComboBoxText& cr, const vector<string>& strings)
{
vector<string>::const_iterator i;