Collecting bindings after ::finish() has already destroyed half the GUI
will result in memory corruption invalid Glib::RefPtr<Gtk::Action>
Gtkmm2ext::ActionMap::get_actions()
Gtkmm2ext::Bindings::get_all_actions()
KeyEditor::Tab::populate()
KeyEditor::refresh()
Editor::set_script_action_name()
LuaInstance::session_going_away()
PBD::Destructible::drop_references()
ARDOUR::Session::destroy()
ARDOUR::Session::~Session()
ARDOUR_UI::finish()
*/
save_ardour_state ();
+ key_editor->disconnect ();
+
close_all_dialogs ();
if (_session) {
add (vpacker);
unbind_button.set_sensitive (false);
- UpdateBindings.connect (sigc::mem_fun (*this, &KeyEditor::refresh));
+ _refresh_connection = UpdateBindings.connect (sigc::mem_fun (*this, &KeyEditor::refresh));
}
void
static sigc::signal<void> UpdateBindings;
+ void disconnect () {
+ _refresh_connection.disconnect ();
+ }
+
private:
class Tab : public Gtk::VBox
{
void toggle_sort_type ();
void search_string_updated (const std::string&);
void print () const;
+
+ sigc::connection _refresh_connection;
};
#endif /* __ardour_gtk_key_editor_h__ */