summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-09-07 23:20:19 +0100
committerCarl Hetherington <cth@carlh.net>2014-09-07 23:20:19 +0100
commit38fd8d2d230a239079ffdf3e10a48833ade6e8c5 (patch)
tree28f22f9d25b1c1c301751897d62c8f051c11bfe3
parent4956be4e16570fa6b6985b11d4d689308343ffbb (diff)
Try to fix crash on exit with the preferences dialog open (only appears on OS X).
-rw-r--r--src/tools/dcpomatic.cc10
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[] = {