misc panning related UI tweaks:
authorRobin Gareus <robin@gareus.org>
Mon, 13 Jan 2014 10:08:37 +0000 (11:08 +0100)
committerPaul Davis <paul@linuxaudiosystems.com>
Mon, 13 Jan 2014 14:39:50 +0000 (09:39 -0500)
* 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
gtk2_ardour/panner2d.cc
gtk2_ardour/panner_ui.cc

index 8c8f675cf46400366a6598e9d7d1423b2833a658..28c4e0745205da86420662c1271e5207cf0afeb9 100644 (file)
@@ -2149,6 +2149,9 @@ MixerStrip::ab_plugins ()
 bool
 MixerStrip::level_meter_button_press (GdkEventButton* ev)
 {
+       if (_current_delivery && boost::dynamic_pointer_cast<Send>(_current_delivery)) {
+               return false;
+       }
        if (ev->button == 3) {
                popup_level_meter_menu (ev);
                return true;
index 46b7c6c6d2f10af64c6c8cbabbbfd20f9817018c..552ddae651c28f937a86eeba7ab7d4f149d7827f 100644 (file)
@@ -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<Evoral::Parameter> params = panner_shell->panner()->what_can_be_automated();
index ce2f0aec8360f37e28880c216683e53bf7883363..53ec589d70ad3b87025091d038e600caa49b10d6 100644 (file)
@@ -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 ();
        }
 }