diff --git a/gtk2_ardour/panner2d.cc b/gtk2_ardour/panner2d.cc index 552ddae651..c3b87ba5e4 100644 --- a/gtk2_ardour/panner2d.cc +++ b/gtk2_ardour/panner2d.cc @@ -202,10 +202,6 @@ 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; } diff --git a/gtk2_ardour/panner_ui.cc b/gtk2_ardour/panner_ui.cc index 53ec589d70..af297a8507 100644 --- a/gtk2_ardour/panner_ui.cc +++ b/gtk2_ardour/panner_ui.cc @@ -231,11 +231,16 @@ PannerUI::setup_pan () _mono_panner = 0; if (!_panner) { + delete big_window; + big_window = 0; return; } if (_panshell->panner_gui_uri() == "http://ardour.org/plugin/panner_2in2out#ui") { + delete big_window; + big_window = 0; + boost::shared_ptr pannable = _panner->pannable(); _stereo_panner = new StereoPanner (_panshell); @@ -260,6 +265,8 @@ PannerUI::setup_pan () else if (_panshell->panner_gui_uri() == "http://ardour.org/plugin/panner_1in2out#ui" || _panshell->panner_gui_uri() == "http://ardour.org/plugin/panner_balance#ui") { + delete big_window; + big_window = 0; boost::shared_ptr pannable = _panner->pannable(); boost::shared_ptr ac = pannable->pan_azimuth_control;