From ff89c4d04dbbcb7832097c5f5867a815cd897fd0 Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Mon, 12 Dec 2022 21:11:33 +0800 Subject: [PATCH] FIX: fix the crash at bootup in some corner case when sys color changed on mac, we need to make sure glcanvas3d inited Change-Id: I91f6995a07550de32fd732a2501a26c947abc5a4 --- src/slic3r/GUI/Plater.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 3e16cf407..8ec2a77aa 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -6197,9 +6197,11 @@ void Plater::priv::show_preview_only_hint(wxCommandEvent &event) void Plater::priv::on_apple_change_color_mode(wxSysColourChangedEvent& evt) { m_is_dark = wxSystemSettings::GetAppearance().IsDark(); - view3D->get_canvas3d()->on_change_color_mode(m_is_dark); - preview->get_canvas3d()->on_change_color_mode(m_is_dark); - assemble_view->get_canvas3d()->on_change_color_mode(m_is_dark); + if (view3D->get_canvas3d() && view3D->get_canvas3d()->is_initialized()) { + view3D->get_canvas3d()->on_change_color_mode(m_is_dark); + preview->get_canvas3d()->on_change_color_mode(m_is_dark); + assemble_view->get_canvas3d()->on_change_color_mode(m_is_dark); + } } void Plater::priv::on_change_color_mode(SimpleEvent& evt) { @@ -7496,7 +7498,7 @@ void Plater::load_project(wxString const& filename2, if (using_exported_file()) p->set_project_filename(filename); } - + // BBS set default 3D view and direction after loading project //p->select_view_3D("3D"); @@ -7541,7 +7543,7 @@ int Plater::save_project(bool saveAs) //BBS export 3mf without gcode if (export_3mf(into_path(filename), SaveStrategy::SplitModel) < 0) { - MessageDialog(this, _L("Failed to save the project.\nPlease check whether the folder exists online or if other programs open the project file."), + MessageDialog(this, _L("Failed to save the project.\nPlease check whether the folder exists online or if other programs open the project file."), _L("Save project"), wxOK | wxICON_WARNING).ShowModal(); return wxID_CANCEL; }