diff options
Diffstat (limited to 'gtk2_ardour/plugin_ui.cc')
-rw-r--r-- | gtk2_ardour/plugin_ui.cc | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gtk2_ardour/plugin_ui.cc b/gtk2_ardour/plugin_ui.cc index 36c5001816..e92da7f49a 100644 --- a/gtk2_ardour/plugin_ui.cc +++ b/gtk2_ardour/plugin_ui.cc @@ -136,8 +136,8 @@ PluginUIWindow::PluginUIWindow (Gtk::Window* win, boost::shared_ptr<PluginInsert add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK); signal_delete_event().connect (bind (sigc::ptr_fun (just_hide_it), reinterpret_cast<Window*> (this)), false); - insert->GoingAway.connect (mem_fun(*this, &PluginUIWindow::plugin_going_away)); - + death_connection = insert->GoingAway.connect (mem_fun(*this, &PluginUIWindow::plugin_going_away)); + gint h = _pluginui->get_preferred_height (); gint w = _pluginui->get_preferred_width (); @@ -155,6 +155,7 @@ PluginUIWindow::PluginUIWindow (Gtk::Window* win, boost::shared_ptr<PluginInsert PluginUIWindow::~PluginUIWindow () { + delete _pluginui; } void @@ -333,6 +334,9 @@ PluginUIWindow::plugin_going_away () if (_pluginui) { _pluginui->stop_updating(0); } + + death_connection.disconnect (); + delete_when_idle (this); } @@ -383,6 +387,10 @@ PlugUIBase::PlugUIBase (boost::shared_ptr<PluginInsert> pi) plugin_eq_bin.set_expanded(true); } +PlugUIBase::~PlugUIBase() +{ +} + void PlugUIBase::processor_active_changed (boost::weak_ptr<Processor> weak_p) { |