diff --git a/gtk2_ardour/vca_master_strip.cc b/gtk2_ardour/vca_master_strip.cc index ed959965b7..e111b0abab 100644 --- a/gtk2_ardour/vca_master_strip.cc +++ b/gtk2_ardour/vca_master_strip.cc @@ -119,7 +119,9 @@ VCAMasterStrip::VCAMasterStrip (Session* s, std::shared_ptr v) vertical_button.set_angle (90); vertical_button.set_layout_font (UIConfiguration::instance().get_NormalBoldFont()); vertical_button.signal_button_press_event().connect (sigc::ptr_fun (&no_propagate), false); + vertical_button.signal_button_press_event().connect (sigc::mem_fun (*this, &VCAMasterStrip::vertical_button_press), false); vertical_button.signal_button_release_event().connect (sigc::mem_fun (*this, &VCAMasterStrip::vertical_button_release), false); + vertical_button.set_fallthrough_to_parent (true); vertical_button.set_active_color (_vca->presentation_info().color ()); set_tooltip (vertical_button, _("Click to show assigned channels only")); /* tooltip updated dynamically */ @@ -390,7 +392,7 @@ VCAMasterStrip::solo_changed () } bool -VCAMasterStrip::vertical_button_release (GdkEventButton* ev) +VCAMasterStrip::vertical_button_press (GdkEventButton* ev) { if (ev->button == 1 && ev->type == GDK_2BUTTON_PRESS) { start_name_edit (); @@ -402,9 +404,16 @@ VCAMasterStrip::vertical_button_release (GdkEventButton* ev) build_context_menu (); } context_menu->popup (ev->time, ev->time); - return false; + return true; } + return false; +} + +bool +VCAMasterStrip::vertical_button_release (GdkEventButton* ev) +{ + if (ev->button == 1) { spill (); } diff --git a/gtk2_ardour/vca_master_strip.h b/gtk2_ardour/vca_master_strip.h index bc8297e553..50569e674b 100644 --- a/gtk2_ardour/vca_master_strip.h +++ b/gtk2_ardour/vca_master_strip.h @@ -95,6 +95,7 @@ private: void unassign (); void start_name_edit (); void finish_name_edit (std::string, int); + bool vertical_button_press (GdkEventButton*); bool vertical_button_release (GdkEventButton*); bool number_button_press (GdkEventButton*); void vca_property_changed (PBD::PropertyChange const & what_changed);