diff --git a/src/slic3r/GUI/Field.cpp b/src/slic3r/GUI/Field.cpp index 9443f36580..e3a9bb2c72 100644 --- a/src/slic3r/GUI/Field.cpp +++ b/src/slic3r/GUI/Field.cpp @@ -608,7 +608,11 @@ void Choice::BUILD() { if (m_is_editable) { temp->Bind(wxEVT_KILL_FOCUS, ([this](wxEvent& e) { e.Skip(); - if (m_opt.type == coStrings) return; + if (m_opt.type == coStrings) { + on_change_field(); + return; + } + double old_val = !m_value.empty() ? boost::any_cast(m_value) : -99999; if (is_defined_input_value(window, m_opt.type)) { if (fabs(old_val - boost::any_cast(get_value())) <= 0.0001) diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 568c84fb57..948b4948ee 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -2948,14 +2948,15 @@ const wxString& Plater::priv::get_project_filename() const void Plater::priv::set_project_filename(const wxString& filename) { - wxString copy = filename; + std::string copy = into_u8(filename); if (boost::algorithm::iends_with(copy, ".zip.amf")) // we remove the .zip part of the extension copy = boost::ireplace_last_copy(copy, ".zip.", "."); // we force 3mf extension - boost::filesystem::path full_path = into_path(copy); - full_path.replace_extension("3mf"); + boost::filesystem::path full_path(copy); + if (!full_path.empty()) + full_path.replace_extension("3mf"); m_project_filename = from_path(full_path); wxGetApp().mainframe->update_title();