number_label.signal_button_press_event().connect (sigc::mem_fun(*this, &MixerStrip::number_button_button_press), false);
name_button.signal_button_press_event().connect (sigc::mem_fun(*this, &MixerStrip::name_button_button_press), false);
- name_button.signal_button_release_event().connect (sigc::mem_fun(*this, &MixerStrip::name_button_button_release), false);
group_button.signal_button_press_event().connect (sigc::mem_fun(*this, &MixerStrip::select_route_group), false);
citems.push_back (SeparatorElem());
citems.push_back (MenuElem (_("Routing Grid"), sigc::mem_fun (*(static_cast<RouteUI*>(this)), &RouteUI::edit_output_configuration)));
- output_menu.popup (1, ev->time);
+ Gtkmm2ext::anchored_menu_popup(&output_menu, &output_button, "",
+ 1, ev->time);
+
break;
}
citems.push_back (SeparatorElem());
citems.push_back (MenuElem (_("Routing Grid"), sigc::mem_fun (*(static_cast<RouteUI*>(this)), &RouteUI::edit_input_configuration)));
- input_menu.popup (1, ev->time);
+ Gtkmm2ext::anchored_menu_popup(&input_menu, &input_button, "",
+ 1, ev->time);
break;
}
gboolean
MixerStrip::name_button_button_press (GdkEventButton* ev)
{
- if (ev->button == 3) {
+ if (ev->button == 1 || ev->button == 3) {
list_route_operations ();
/* do not allow rename if the track is record-enabled */
rename_menu_item->set_sensitive (!is_track() || !track()->rec_enable_control()->get_value());
- route_ops_menu->popup (1, ev->time);
+ if (ev->button == 1) {
+ Gtkmm2ext::anchored_menu_popup(route_ops_menu, &name_button, "",
+ 1, ev->time);
+ } else {
+ route_ops_menu->popup (3, ev->time);
+ }
return true;
}
return false;
}
-gboolean
-MixerStrip::name_button_button_release (GdkEventButton* ev)
-{
- if (ev->button == 1) {
- list_route_operations ();
-
- /* do not allow rename if the track is record-enabled */
- rename_menu_item->set_sensitive (!is_track() || !track()->rec_enable_control()->get_value());
- route_ops_menu->popup (1, ev->time);
- }
-
- return false;
-}
-
gboolean
MixerStrip::number_button_button_press (GdkEventButton* ev)
{