Fix crash on macOS when OrcaSlicer is quit from the Dock, a logout or a restart (#16136)

Fix crash when quitting from the Dock, logout or restart on macOS
This commit is contained in:
Ioannis Giannakas
2026-10-04 21:54:47 +01:00
committed by GitHub
parent b29c3b36ec
commit 7fd6e5fd72
+12
View File
@@ -3087,6 +3087,18 @@ bool GUI_App::on_init_inner()
d->EndModal(wxID_ABORT);
});
#ifdef __APPLE__
// A quit request from the Dock, a logout or a restart ends with AppKit calling exit() right after this event, so
// OnExit() and ~GUI_App() never run. Shut the plugins and Python down here as ~GUI_App() does. Left to
// PluginManager's static destructor, the shutdown locks hook state that has already been destroyed and aborts.
wxGetApp().Bind(wxEVT_END_SESSION, [](wxCloseEvent &e) {
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << "received wxEVT_END_SESSION";
Slic3r::PluginManager::instance().shutdown();
Slic3r::PythonInterpreter::instance().shutdown();
e.Skip();
});
#endif
// Verify resources path
const wxString resources_dir = from_u8(Slic3r::resources_dir());
wxCHECK_MSG(wxDirExists(resources_dir), false,