diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp b/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp index 93c7d1fe6..e33127ff2 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp @@ -709,6 +709,13 @@ void GLGizmoBase::render_glmodel(GLModel &model, const std::array &col } } +void GLGizmoBase::on_set_state() +{ + if (get_state() == Off) { + m_parent.handle_sidebar_focus_event("", false); + } +} + std::string GLGizmoBase::get_name(bool include_shortcut) const { int key = get_shortcut_key(); diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp b/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp index c8221270e..69cf5075c 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp @@ -256,7 +256,7 @@ protected: virtual void on_save(cereal::BinaryOutputArchive& ar) const {} virtual std::string on_get_name() const = 0; virtual std::string on_get_name_str() { return ""; } - virtual void on_set_state() {} + virtual void on_set_state(); virtual void on_set_hover_id() {} virtual bool on_is_activable() const { return true; } virtual bool on_is_selectable() const { return true; } diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMove.cpp b/src/slic3r/GUI/Gizmos/GLGizmoMove.cpp index e0cffbdd3..64a9c3a48 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMove.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMove.cpp @@ -146,6 +146,7 @@ void GLGizmoMove3D::on_set_state() { m_last_selected_volume_idx = -1; change_cs_by_selection(); } + GLGizmoBase::on_set_state(); } void GLGizmoMove3D::on_start_dragging() diff --git a/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp b/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp index 0869a63ce..fbbdb2fce 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp @@ -676,6 +676,7 @@ void GLGizmoRotate3D::on_set_state() m_object_manipulation->set_coordinates_type(ECoordinatesType::World); m_last_volume = nullptr; } + GLGizmoBase::on_set_state(); } void GLGizmoRotate3D::data_changed(bool is_serializing) { diff --git a/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp b/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp index 67114b4f7..480780599 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp @@ -177,6 +177,7 @@ void GLGizmoScale3D::on_set_state() { m_last_selected_volume_idx = -1; change_cs_by_selection(); } + GLGizmoBase::on_set_state(); } static int constraint_id(int grabber_id)