diff options
| author | Carl Hetherington <cth@carlh.net> | 2014-09-07 23:20:19 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2014-09-07 23:20:19 +0100 |
| commit | 38fd8d2d230a239079ffdf3e10a48833ade6e8c5 (patch) | |
| tree | 28f22f9d25b1c1c301751897d62c8f051c11bfe3 | |
| parent | 4956be4e16570fa6b6985b11d4d689308343ffbb (diff) | |
Try to fix crash on exit with the preferences dialog open (only appears on OS X).
| -rw-r--r-- | src/tools/dcpomatic.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/tools/dcpomatic.cc b/src/tools/dcpomatic.cc index 6b7ad0273..c3dd8cd58 100644 --- a/src/tools/dcpomatic.cc +++ b/src/tools/dcpomatic.cc @@ -163,7 +163,7 @@ public: setup_menu (bar); SetMenuBar (bar); - Config::instance()->Changed.connect (boost::bind (&Frame::config_changed, this)); + _config_changed_connection = Config::instance()->Changed.connect (boost::bind (&Frame::config_changed, this)); config_changed (); Bind (wxEVT_COMMAND_MENU_SELECTED, boost::bind (&Frame::file_new, this), ID_file_new); @@ -515,8 +515,13 @@ private: return; } + /* We don't want to hear about any more configuration changes, since they + cause the File menu to be altered, which itself will be deleted around + now (without, as far as I can see, any way for us to find out). + */ + _config_changed_connection.disconnect (); + maybe_save_then_delete_film (); - ev.Skip (); } @@ -684,6 +689,7 @@ private: int _history_items; int _history_position; wxMenuItem* _history_separator; + boost::signals2::scoped_connection _config_changed_connection; }; static const wxCmdLineEntryDesc command_line_description[] = { |
