From 48e1919ff13eb00175e16c67f372384868ec0c32 Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Wed, 8 Jun 2022 14:38:23 +0200 Subject: [PATCH] Fix double undo/redo snapshot when using SpinCtrl --- src/slic3r/GUI/Field.cpp | 5 ++--- src/slic3r/GUI/Field.hpp | 1 - 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/slic3r/GUI/Field.cpp b/src/slic3r/GUI/Field.cpp index 6b210a708e..a18020357f 100644 --- a/src/slic3r/GUI/Field.cpp +++ b/src/slic3r/GUI/Field.cpp @@ -877,10 +877,10 @@ void SpinCtrl::BUILD() { void SpinCtrl::propagate_value() { - if (suppress_propagation) + // check if value was really changed + if (boost::any_cast(m_value) == tmp_value) return; - suppress_propagation = true; if (tmp_value == UNDEF_VALUE) { on_kill_focus(); } else { @@ -894,7 +894,6 @@ void SpinCtrl::propagate_value() #endif on_change_field(); } - suppress_propagation = false; } void SpinCtrl::msw_rescale() diff --git a/src/slic3r/GUI/Field.hpp b/src/slic3r/GUI/Field.hpp index 8bdf4b8d80..8575001bf8 100644 --- a/src/slic3r/GUI/Field.hpp +++ b/src/slic3r/GUI/Field.hpp @@ -302,7 +302,6 @@ class SpinCtrl : public Field { private: static const int UNDEF_VALUE = INT_MIN; - bool suppress_propagation {false}; public: SpinCtrl(const ConfigOptionDef& opt, const t_config_option_key& id) : Field(opt, id), tmp_value(UNDEF_VALUE) {} SpinCtrl(wxWindow* parent, const ConfigOptionDef& opt, const t_config_option_key& id) : Field(parent, opt, id), tmp_value(UNDEF_VALUE) {}