From 2edc3d1b74c14bf4c704f564f80d75a5ef3d5dca Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 13 Jan 2014 11:08:37 +0100 Subject: [PATCH] misc panning related UI tweaks: * connect 2D panner "edit" to big window * disconnect 2D-panner GUI when it's visible but panner-type changes * ignore mixer-strip level-meter context-menu for Aux-sends --- gtk2_ardour/mixer_strip.cc | 3 +++ gtk2_ardour/panner2d.cc | 8 ++++++++ gtk2_ardour/panner_ui.cc | 5 +++++ 3 files changed, 16 insertions(+) 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 (); } }