summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/ardour_dialog.cc2
-rw-r--r--gtk2_ardour/window_manager.cc5
-rw-r--r--gtk2_ardour/window_manager.h3
3 files changed, 4 insertions, 6 deletions
diff --git a/gtk2_ardour/ardour_dialog.cc b/gtk2_ardour/ardour_dialog.cc
index 1c9da0112f..68f388682a 100644
--- a/gtk2_ardour/ardour_dialog.cc
+++ b/gtk2_ardour/ardour_dialog.cc
@@ -45,6 +45,7 @@ ArdourDialog::ArdourDialog (string title, bool modal, bool use_seperator)
ArdourDialog::ArdourDialog (Gtk::Window& parent, string title, bool modal, bool use_seperator)
: Dialog (title, parent, modal, use_seperator)
+ , proxy (0)
, _splash_pushed (false)
{
init ();
@@ -56,6 +57,7 @@ ArdourDialog::~ArdourDialog ()
pop_splash ();
Keyboard::the_keyboard().focus_out_window (0, this);
WM::Manager::instance().remove (proxy);
+ proxy->explicit_delete ();
}
void
diff --git a/gtk2_ardour/window_manager.cc b/gtk2_ardour/window_manager.cc
index 1d63751c5e..cdb83fba8b 100644
--- a/gtk2_ardour/window_manager.cc
+++ b/gtk2_ardour/window_manager.cc
@@ -255,11 +255,6 @@ ProxyTemporary::ProxyTemporary (const string& name, Gtk::Window* win)
_window = win;
}
-ProxyTemporary::~ProxyTemporary ()
-{
-}
-
-
ARDOUR::SessionHandlePtr*
ProxyTemporary::session_handle()
{
diff --git a/gtk2_ardour/window_manager.h b/gtk2_ardour/window_manager.h
index a5a9714cc8..93d71add92 100644
--- a/gtk2_ardour/window_manager.h
+++ b/gtk2_ardour/window_manager.h
@@ -97,7 +97,6 @@ class ProxyTemporary: public ProxyBase
{
public:
ProxyTemporary (const std::string& name, Gtk::Window* win);
- ~ProxyTemporary();
Gtk::Window* get (bool create = false) {
(void) create;
@@ -109,6 +108,8 @@ public:
}
ARDOUR::SessionHandlePtr* session_handle ();
+
+ void explicit_delete () { _window = 0 ; delete this; }
};
template<typename T>