From 1146d58d212423f67f19a490b6832d0496fa9e77 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 13 Jan 2014 11:08:37 +0100 Subject: 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(+) (limited to 'gtk2_ardour') diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index 3a3c39ea17..780e8078c6 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 c59523abe3..9de8123ea8 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 3ee794e578..3602225c88 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 (); } } -- cgit v1.2.3