From 62c90abbc03887c7cf03297d3ec2c7c68ee15755 Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Fri, 25 Oct 2019 13:09:10 +0200 Subject: [PATCH] Fix of SPE-1041: set_state function for gizmos is called even if they are turned on/off by the undo/redo action --- src/slic3r/GUI/Gizmos/GLGizmosManager.hpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp index f649c98b25..0defb13483 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp @@ -114,8 +114,17 @@ public: m_serializing = true; + // Following is needed to know which to be turn on, but not actually modify + // m_current prematurely, so activate_gizmo is not confused. + EType old_current = m_current; ar(m_current); + EType new_current = m_current; + m_current = old_current; + // activate_gizmo call sets m_current and calls set_state for the gizmo + // it does nothing in case the gizmo is already activated + // it can safely be called for Undefined gizmo + activate_gizmo(new_current); if (m_current != Undefined) m_gizmos[m_current]->load(ar); }