From ba9993c198c652b3e0c38f3d91bc03b4fc30b0ef Mon Sep 17 00:00:00 2001 From: YuSanka Date: Tue, 21 Jun 2022 12:54:23 +0200 Subject: [PATCH] ObjectLayers: Negative value for layer heights are suppressed + Set last valid value, when invalid numeric value was inputted + Linux specific: Fixed a crash, when alternate decimal separator was used in input --- src/slic3r/GUI/GUI_ObjectLayers.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/slic3r/GUI/GUI_ObjectLayers.cpp b/src/slic3r/GUI/GUI_ObjectLayers.cpp index 2801bc6f3d..0587f353fc 100644 --- a/src/slic3r/GUI/GUI_ObjectLayers.cpp +++ b/src/slic3r/GUI/GUI_ObjectLayers.cpp @@ -427,16 +427,13 @@ coordf_t LayerRangeEditor::get_value() const char dec_sep = is_decimal_separator_point() ? '.' : ','; const char dec_sep_alt = dec_sep == '.' ? ',' : '.'; // Replace the first incorrect separator in decimal number. - if (str.Replace(dec_sep_alt, dec_sep, false) != 0) - SetValue(str); + str.Replace(dec_sep_alt, dec_sep, false); if (str == ".") layer_height = 0.0; - else { - if (!str.ToDouble(&layer_height) || layer_height < 0.0f) { - show_error(m_parent, _L("Invalid numeric input.")); - SetValue(double_to_string(layer_height)); - } + else if (!str.ToDouble(&layer_height) || layer_height < 0.0f) { + show_error(m_parent, _L("Invalid numeric input.")); + assert(m_valid_value.ToDouble(&layer_height)); } return layer_height;