diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index 8c8f675cf4..28c4e07452 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -2149,6 +2149,9 @@ MixerStrip::ab_plugins () bool MixerStrip::level_meter_button_press (GdkEventButton* ev) { + if (_current_delivery && boost::dynamic_pointer_cast(_current_delivery)) { + return false; + } if (ev->button == 3) { popup_level_meter_menu (ev); return true; diff --git a/gtk2_ardour/panner2d.cc b/gtk2_ardour/panner2d.cc index 46b7c6c6d2..552ddae651 100644 --- a/gtk2_ardour/panner2d.cc +++ b/gtk2_ardour/panner2d.cc @@ -201,6 +201,14 @@ void Panner2d::handle_state_change () { panconnect.drop_connections(); + if (!panner_shell->panner()) { + /* we should really self-destruct the UI here + * -> * PannerUI::set_panner() -> delete + */ + queue_draw (); + return; + } + panner_shell->panner()->SignalPositionChanged.connect (panconnect, invalidator(*this), boost::bind (&Panner2d::handle_position_change, this), gui_context()); set params = panner_shell->panner()->what_can_be_automated(); diff --git a/gtk2_ardour/panner_ui.cc b/gtk2_ardour/panner_ui.cc index ce2f0aec83..53ec589d70 100644 --- a/gtk2_ardour/panner_ui.cc +++ b/gtk2_ardour/panner_ui.cc @@ -417,6 +417,11 @@ PannerUI::pan_edit () _mono_panner->edit (); } else if (_stereo_panner) { _stereo_panner->edit (); + } else if (twod_panner) { + if (!big_window) { + big_window = new Panner2dWindow (_panshell, 400, _panner->in().n_audio()); + } + big_window->show (); } }