From 962e7a214aa8841f88e5fbf6bb12499dfddeb269 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 24 Mar 2017 14:36:17 +0100 Subject: Revert "consistent use of context-menu popups" This reverts commit b3722f7063699fafd0421d504e05a7300c70e0ec. In some cases ardour shows context-menu on right-mouse-button release. In this case selecting a menu-entry should happen with the left-mouse button (or any button?!) Using ev->button is only correct if the menu is temporary and only visible while the button is held, button release then activates the menu-item. This needs further work, in some cases allowing any button (0) to work makes sense and overall consistency needs to be improved. Different places use different strategies for context-menus which don't always match the button used in the event-handler. This is a hotfix (to make TAV context menus work again with left-click) --- gtk2_ardour/ardour_ui_ed.cc | 2 +- gtk2_ardour/audio_clock.cc | 2 +- gtk2_ardour/automation_controller.cc | 4 ++-- gtk2_ardour/control_slave_ui.cc | 2 +- gtk2_ardour/editor_markers.cc | 12 ++++++------ gtk2_ardour/gain_meter.cc | 2 +- gtk2_ardour/mixer_strip.cc | 6 +++--- gtk2_ardour/panner_ui.cc | 6 +++--- gtk2_ardour/processor_box.cc | 2 +- gtk2_ardour/route_ui.cc | 10 +++++----- gtk2_ardour/time_axis_view.cc | 2 +- gtk2_ardour/vca_master_strip.cc | 4 ++-- gtk2_ardour/visibility_group.cc | 2 +- 13 files changed, 28 insertions(+), 28 deletions(-) diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc index 905e2c5d07..18a8036217 100644 --- a/gtk2_ardour/ardour_ui_ed.cc +++ b/gtk2_ardour/ardour_ui_ed.cc @@ -901,7 +901,7 @@ ARDOUR_UI::tabbable_visibility_button_press (GdkEventButton* ev, string const& t string menu_name = string ("/ui/") + tabbable_name + X_("TabbableButtonMenu"); Gtk::Menu* menu = dynamic_cast (ActionManager::get_widget (menu_name.c_str())); if (menu) { - menu->popup (ev->button, ev->time); + menu->popup (3, ev->time); } return true; } diff --git a/gtk2_ardour/audio_clock.cc b/gtk2_ardour/audio_clock.cc index 70d5b3a713..f11e327d83 100644 --- a/gtk2_ardour/audio_clock.cc +++ b/gtk2_ardour/audio_clock.cc @@ -1569,7 +1569,7 @@ AudioClock::on_button_release_event (GdkEventButton *ev) if (ops_menu == 0) { build_ops_menu (); } - ops_menu->popup (ev->button, ev->time); + ops_menu->popup (1, ev->time); return true; } diff --git a/gtk2_ardour/automation_controller.cc b/gtk2_ardour/automation_controller.cc index 0005589100..21e6b429cb 100644 --- a/gtk2_ardour/automation_controller.cc +++ b/gtk2_ardour/automation_controller.cc @@ -296,7 +296,7 @@ AutomationController::on_button_release(GdkEventButton* ev) MenuList& items = menu->items(); items.push_back(MenuElem(_("Select Note..."), sigc::mem_fun(*this, &AutomationController::run_note_select_dialog))); - menu->popup(ev->button, ev->time); + menu->popup(1, ev->time); return true; } else if (desc.unit == ARDOUR::ParameterDescriptor::HZ) { Gtk::Menu* menu = manage(new Menu()); @@ -320,7 +320,7 @@ AutomationController::on_button_release(GdkEventButton* ev) (double)beats))); } } - menu->popup(ev->button, ev->time); + menu->popup(1, ev->time); return true; } diff --git a/gtk2_ardour/control_slave_ui.cc b/gtk2_ardour/control_slave_ui.cc index 55a9b2aaaa..8842590bb1 100644 --- a/gtk2_ardour/control_slave_ui.cc +++ b/gtk2_ardour/control_slave_ui.cc @@ -219,7 +219,7 @@ ControlSlaveUI::vca_button_release (GdkEventButton* ev, uint32_t n) } if (!items.empty()) { - context_menu->popup (ev->button, ev->time); + context_menu->popup (1, ev->time); } return true; diff --git a/gtk2_ardour/editor_markers.cc b/gtk2_ardour/editor_markers.cc index 86318b5254..40942e1569 100644 --- a/gtk2_ardour/editor_markers.cc +++ b/gtk2_ardour/editor_markers.cc @@ -810,7 +810,7 @@ Editor::tempo_or_meter_marker_context_menu (GdkEventButton* ev, ArdourCanvas::It can_remove = !mm->meter().initial (); delete meter_marker_menu; build_meter_marker_menu (mm, can_remove); - meter_marker_menu->popup (ev->button, ev->time); + meter_marker_menu->popup (1, ev->time); } else if (tm) { if (!tm->tempo().active()) { return; @@ -818,7 +818,7 @@ Editor::tempo_or_meter_marker_context_menu (GdkEventButton* ev, ArdourCanvas::It can_remove = !tm->tempo().initial() && !tm->tempo().locked_to_meter(); delete tempo_marker_menu; build_tempo_marker_menu (tm, can_remove); - tempo_marker_menu->popup (ev->button, ev->time); + tempo_marker_menu->popup (1, ev->time); } else { return; } @@ -842,7 +842,7 @@ Editor::marker_context_menu (GdkEventButton* ev, ArdourCanvas::Item* item) build_range_marker_menu (loc, loc == transport_loop_location() || loc == transport_punch_location(), loc->is_session_range()); marker_menu_item = item; - transport_marker_menu->popup (ev->button, ev->time); + transport_marker_menu->popup (1, ev->time); } else if (loc->is_mark()) { @@ -864,14 +864,14 @@ Editor::marker_context_menu (GdkEventButton* ev, ArdourCanvas::Item* item) } #endif marker_menu_item = item; - marker_menu->popup (ev->button, ev->time); + marker_menu->popup (1, ev->time); } else if (loc->is_range_marker()) { delete range_marker_menu; build_range_marker_menu (loc, false, false); marker_menu_item = item; - range_marker_menu->popup (ev->button, ev->time); + range_marker_menu->popup (1, ev->time); } } @@ -882,7 +882,7 @@ Editor::new_transport_marker_context_menu (GdkEventButton* ev, ArdourCanvas::Ite build_new_transport_marker_menu (); } - new_transport_marker_menu->popup (ev->button, ev->time); + new_transport_marker_menu->popup (1, ev->time); } diff --git a/gtk2_ardour/gain_meter.cc b/gtk2_ardour/gain_meter.cc index 0774e15af0..c7c44c5915 100644 --- a/gtk2_ardour/gain_meter.cc +++ b/gtk2_ardour/gain_meter.cc @@ -499,7 +499,7 @@ GainMeterBase::popup_meter_menu (GdkEventButton *ev) items.push_back (MenuElem ("-4 .. -2dBFS")); } - meter_menu->popup (ev->button, ev->time); + meter_menu->popup (1, ev->time); } bool diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index c33a885366..91f93f9546 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -1778,7 +1778,7 @@ MixerStrip::name_button_button_press (GdkEventButton* ev) Gtkmm2ext::anchored_menu_popup(route_ops_menu, &name_button, "", 1, ev->time); } else { - route_ops_menu->popup (ev->button, ev->time); + route_ops_menu->popup (3, ev->time); } return true; @@ -1790,10 +1790,10 @@ MixerStrip::name_button_button_press (GdkEventButton* ev) gboolean MixerStrip::number_button_button_press (GdkEventButton* ev) { - if (ev->button == 3) { + if ( ev->button == 3 ) { list_route_operations (); - route_ops_menu->popup (ev->button, ev->time); + route_ops_menu->popup (1, ev->time); return true; } diff --git a/gtk2_ardour/panner_ui.cc b/gtk2_ardour/panner_ui.cc index 37c0970830..0818833767 100644 --- a/gtk2_ardour/panner_ui.cc +++ b/gtk2_ardour/panner_ui.cc @@ -381,7 +381,7 @@ PannerUI::pan_button_event (GdkEventButton* ev) pan_menu->set_name ("ArdourContextMenu"); } build_pan_menu (); - pan_menu->popup (ev->button, ev->time); + pan_menu->popup (1, ev->time); return true; break; default: @@ -506,7 +506,7 @@ PannerUI::pan_automation_state_button_event (GdkEventButton *ev) if (pan_astate_menu == 0) { build_astate_menu (); } - pan_astate_menu->popup (ev->button, ev->time); + pan_astate_menu->popup (1, ev->time); break; default: break; @@ -527,7 +527,7 @@ PannerUI::pan_automation_style_button_event (GdkEventButton *ev) if (pan_astyle_menu == 0) { build_astyle_menu (); } - pan_astyle_menu->popup (ev->button, ev->time); + pan_astyle_menu->popup (1, ev->time); break; default: break; diff --git a/gtk2_ardour/processor_box.cc b/gtk2_ardour/processor_box.cc index 844e3c5f35..52831ee6ac 100644 --- a/gtk2_ardour/processor_box.cc +++ b/gtk2_ardour/processor_box.cc @@ -2222,7 +2222,7 @@ ProcessorBox::show_processor_menu (int arg) && !boost::dynamic_pointer_cast (single_selection->processor ()) && !boost::dynamic_pointer_cast (single_selection->processor ())); - processor_menu->popup (3, arg); + processor_menu->popup (1, arg); /* Add a placeholder gap to the processor list to indicate where a processor would be inserted were one chosen from the menu. diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc index fee5838202..c8c48f257e 100644 --- a/gtk2_ardour/route_ui.cc +++ b/gtk2_ardour/route_ui.cc @@ -426,7 +426,7 @@ RouteUI::mute_press (GdkEventButton* ev) build_mute_menu(); } - mute_menu->popup(ev->button, ev->time); + mute_menu->popup(0,ev->time); return true; @@ -604,7 +604,7 @@ RouteUI::solo_press(GdkEventButton* ev) build_solo_menu (); } - solo_menu->popup (ev->button, ev->time); + solo_menu->popup (1, ev->time); } } else { @@ -1009,7 +1009,7 @@ RouteUI::rec_enable_release (GdkEventButton* ev) if (Keyboard::is_context_menu_event (ev)) { build_record_menu (); if (record_menu) { - record_menu->popup (ev->button, ev->time); + record_menu->popup (1, ev->time); } return false; } @@ -1128,7 +1128,7 @@ RouteUI::show_sends_press(GdkEventButton* ev) build_sends_menu (); } - sends_menu->popup (ev->button, ev->time); + sends_menu->popup (0, ev->time); } else { @@ -2139,7 +2139,7 @@ RouteUI::invert_press (GdkEventButton* ev) --_i_am_the_modifier; } - _invert_menu->popup (ev->button, ev->time); + _invert_menu->popup (0, ev->time); return true; } diff --git a/gtk2_ardour/time_axis_view.cc b/gtk2_ardour/time_axis_view.cc index 6c9eb1d4eb..67e487f648 100644 --- a/gtk2_ardour/time_axis_view.cc +++ b/gtk2_ardour/time_axis_view.cc @@ -744,7 +744,7 @@ TimeAxisView::popup_display_menu (guint32 when) build_display_menu (); if (!display_menu->items().empty()) { - display_menu->popup (3, when); + display_menu->popup (1, when); } } diff --git a/gtk2_ardour/vca_master_strip.cc b/gtk2_ardour/vca_master_strip.cc index 52eaba67dd..2d6088fbdf 100644 --- a/gtk2_ardour/vca_master_strip.cc +++ b/gtk2_ardour/vca_master_strip.cc @@ -377,7 +377,7 @@ VCAMasterStrip::vertical_button_press (GdkEventButton* ev) if (!context_menu) { build_context_menu (); } - context_menu->popup (ev->button, ev->time); + context_menu->popup (1, ev->time); return true; } @@ -395,7 +395,7 @@ VCAMasterStrip::number_button_press (GdkEventButton* ev) if (!context_menu) { build_context_menu (); } - context_menu->popup (ev->button, ev->time); + context_menu->popup (1, ev->time); } return true; } diff --git a/gtk2_ardour/visibility_group.cc b/gtk2_ardour/visibility_group.cc index e5f747ee96..d0ef1dd635 100644 --- a/gtk2_ardour/visibility_group.cc +++ b/gtk2_ardour/visibility_group.cc @@ -69,7 +69,7 @@ VisibilityGroup::button_press_event (GdkEventButton* ev) return false; } - menu()->popup (ev->button, ev->time); + menu()->popup (1, ev->time); return true; } -- cgit v1.2.3